win7 双核cpu 8G内存 普通硬盘
C:\Users\Admin>systeminfo
OS 名称: Microsoft Windows 7 专业版
OS 版本: 6.1.7601 Service Pack 1 Build 7601
系统类型: x64-based PC
处理器: 安装了 1 个处理器。
[01]: Intel64 Family 6 Model 94 Stepping 3 GenuineIntel ~3201 Mhz
物理内存总量: 8,081 MB
可用的物理内存: 3,256 MB
C:\Users\Admin>wmic diskdrive get Caption,Index,InterfaceType,Manufacturer,Model
Caption Index InterfaceType Manufacturer Model
ST1000DM003-1SB102 ATA Device 0 IDE (标准磁盘驱动器) ST1000DM003-1SB102 ATA Device
NVMe SAMSUNG MZVLW128 SCSI Disk Device 1 SCSI (标准磁盘驱动器) NVMe SAMSUNG MZVLW128 SCSI Disk Device
某列3千万个左右的分组,直接group by里count,是出不来数的,以下处理步骤:
1、为省份列建位图索引分省处理
create bitmap index ix_biz_data_sheng on biz_data (sheng);
2、创建没有主键没有索引的nologging表存储group by对应的列值和count数
3、插入时加append hint,每个省提交一次,在服务器上使用sqlplus执行
begin
for cur in (select distinct sheng from biz_data) loop
insert /*+ APPEND */ into t_cols nologging
select user, count(1) cnt
from biz_data
where sheng = cur.sheng
group by user;
commit;
end loop;
end;
1、nologging
alter table biz_xxx nologging
2、去掉主键、索引
3、分批处理及时commit,比如年份、省份
insert /*+ append */ into biz_xxx nologging