2009-12-31 127 views

回答

19

先插入您的數據,然後創建您的索引。

每次執行UPDATE,INSERT或DELETE操作時,表中的任何索引都必須更新。因此,如果您先創建索引,然後再插入10M行,那麼索引也必須更新10M(除非您正在執行批量操作)。

6

插入記錄然後在導入行後創建索引會更快更好。速度更快,因爲插入行時沒有索引維護的開銷,並且從索引上的碎片角度來看它更好。

顯然,對於唯一索引,請確保您要導入的數據是唯一的,以便在嘗試創建索引時沒有失敗。

2

正如其他人所說,先插入並在稍後添加索引。如果表已經存在並且您必須插入一堆數據,請刪除所有索引和約束,插入數據,然後重新應用您的索引,然後重新應用您的約束。你一定會想要做中間提交來幫助排除你會用完回滾段空間或類似的東西。如果你插入這麼多的數據,看看使用SQL * Loader來節省你的時間和惡化會很有用。

我希望這會有所幫助。

+0

「中,你是節約資源或使事情誤以爲常犯走得更快不僅會爲您提供: Ø會降低你的,是的,這是正確的,會降低你的 - 讓你運行SLOOOWWWWEEERRR o不保存任何資源,事實上,它消耗更多(您生成更多重做) o嚴重質疑數據的完整性「 – Angelina 2014-05-27 18:52:39