批量加载器是否会在插入时保留行的顺序

时间:2014-06-12 21:04:54

标签: oracle sql-loader bulk-load

如果我使用sql批量加载程序从平面文件中将10 000行加载到oracle数据库中,那么行的插入顺序是否与它们在文件中出现的顺序相同?例如,假设有一个唯一的键列,对于每个插入的行,它会自动递增1。

所以我可以预测文件中的第一行将成为数据库中的第一行(a.k.a对于此列的值为1)

2 个答案:

答案 0 :(得分:2)

“sql bulk loader”是否意味着“SQL * Loader”?还是外部表?或者其他一些用于进行批量数据加载的技术(即Toad的导入机制或SQL Developer的导入机制)?

最终导致“乱序”数据的最简单方法是并行处理批量加载。这是外部表如此有用的原因之一 - 您可以轻松地specify a degree of parallelism负载(当然,给定一些约束),以便您可以更快地运行大型负载。其他批量加载工具可能具有类似的选项,或者它们可能始终在单个会话中执行其加载。如果在单个会话中完成加载,则该工具很可能会按顺序从文件中读取数据并按顺序插入。

答案 1 :(得分:1)

您不能依赖加载顺序与源文件顺序一致。当一些样品以这种方式结束时,不要被愚弄,但不能保证。