我需要在平面文件中删除超过2000万条记录。直接选择查询将是时间利用。我觉得需要根据数据的部分并行生成输出 - 即每个并行10个选择查询超过10%的数据。然后在UNIX上进行排序和合并。
我可以利用rownum来做到这一点,但是这将是乏味的,静态的,并且每次我的rownum更改时都需要更新。
有更好的选择吗?
答案 0 :(得分:0)
如果SQL中的数据很好地分布在多个轴上,而不是全部放在一个磁盘上,并且IO和网络通道当前没有饱和,则拆分为单独的流可能会减少您的经过时间。它还可能在一个或多个源硬盘驱动器上引入随机访问,这将削弱您的吞吐量。读取群集序列以外的任何内容都会导致磁盘争用。
此处的最佳方案是对源表进行分区,每个分区位于单独的存储上(或条带非常好),并且每个读取器进程都与分区边界对齐。