Oracle中创建千万级大表归纳

时间:2022-06-27 03:34:46

从一月至今,我总共归纳了三种创建千万级大表的方案,它们是:

下面是这三种方案的对比表格:

# 名称 地址 主要机制 速度
1 在Oracle中十分钟内创建一张千万级别的表 https://www.cnblogs.com/xiandedanteng/p/12169527.html connect by+Insert into select 由于插入量是线性增长的,导致速度在前三种方案里最慢
2 25分钟创建一千六百万大表全记录 https://www.cnblogs.com/xiandedanteng/p/12493930.html 同上 插入量是成几何级数增长的,速度要比上面方案快些
3 用笛卡尔积来创建一千六百万大表 整体19分钟 大表建成两分钟 设置id13分钟 https://www.cnblogs.com/xiandedanteng/p/12496028.html 用connect by生成小表,再用笛卡尔积产生大表 由于小表相乘产生笛卡儿积迅速,使得速度最快。
4 将大量数据批量插入Oracle表的类,支持停止续传 https://www.cnblogs.com/xiandedanteng/p/12149638.html 用java程序生成数据,用批量插值语句插值 没有直接用sql生成数据,二十多了一层java,因此速度落于下乘。但对数据内容有要求的场合一定会用到这种方案。

现在可以说,两分钟内创建一张千万级大表很寻常,当然把id规整好设上主键需要十三分钟左右时间,这都是一步步尝试后的宝贵经验总结,另外用java程序生成数据也是一条不可或缺的路子,对数据内容格式有要求的场合离不了它。

--2020年3月15日 总结于此以备考--