2009-12-31 171 views

回答

19

先插入您的数据,然后创建您的索引。

每次执行UPDATE,INSERT或DELETE操作时,表中的任何索引都必须更新。因此,如果您先创建索引,然后再插入10M行,那么索引也必须更新10M(除非您正在执行批量操作)。

6

插入记录然后在导入行后创建索引会更快更好。速度更快,因为插入行时没有索引维护的开销,并且从索引上的碎片角度来看它更好。

显然,对于唯一索引,请确保您要导入的数据是唯一的,以便在尝试创建索引时没有失败。

2

正如其他人所说,先插入并在稍后添加索引。如果表已经存在并且您必须插入一堆数据,请删除所有索引和约束,插入数据,然后重新应用您的索引,然后重新应用您的约束。你一定会想要做中间提交来帮助排除你会用完回滚段空间或类似的东西。如果你插入这么多的数据,看看使用SQL * Loader来节省你的时间和恶化会很有用。

我希望这会有所帮助。

+0

“中,你是节约资源或使事情误以为常犯走得更快不仅会为您提供: Ø会降低你的,是的,这是正确的,会降低你的 - 让你运行SLOOOWWWWEEERRR o不保存任何资源,事实上,它消耗更多(您生成更多重做) o严重质疑数据的完整性“ – Angelina 2014-05-27 18:52:39