【发布时间】:2013-08-08 07:32:52
【问题描述】:
在 880 个 mio 行上创建 PK 和索引大约需要 1:15 小时。
查询:
alter table STG.NOTES add constraint PK_NOTES primary key (NOTES_SK);
create unique index STG.BK_NOTES on STG.NOTES (NOTE_NBR ASC);
有没有办法加快速度?我阅读了并行和无日志记录选项。 Oracle 服务器有 2 个 CPU,因此并行 (n-1 = 2-1 = 1) 无济于事。只留下nologging。你能告诉我什么吗?什么是权衡?为什么会/不会使用它?
编辑: 或许我还需要解释一下索引创建的上下文是什么:
截断目标表,然后删除目标表上的 PK 和索引
从源中选择并批量插入到目标中
在目标表上创建索引和 PK(= 1:15 小时)
【问题讨论】:
-
您是否尝试过在加载数据时保留索引?虽然这会使插入花费更长的时间,但总体上可能比删除、插入和重新创建更快。