2013-10-02 55 views
-2

應用程序將排序後的數據逐行插入表中,並且希望改進插入的性能。將已排序的數據插入到具有聚簇索引的表中

我應該在運行應用程序(開始時爲空)還是在運行結束之前創建聚集索引?

也許最好是將數據導入臨時表並將其插入到每個X插入的主表中?

+0

只是讓你知道 - 聚集索引說*沒有*關於您將在以後從表中獲取行的順序。 –

+0

您正在使用哪個版本的SQL Server(更新問題標籤)?數據的來源是什麼? Excel,CSV?着眼於使用SQL Server的導入工具而不是編寫自己的應用程序。 – Tony

+0

來源是由將應用程序將每個結果插入到單獨的查詢中進行的計算。 – user2790440

回答

0

我不建議在需要進行導入時刪除和添加索引。

你評論說

來源是在一個單獨的查詢

這意味着你可以繞不單獨插入語句插入得到各 結果由應用程序進行的計算。因此,下一個需要考慮的解決方案是對應用程序進行多線程。

讓數據庫通過索引處理數據的排序,這將是應用程序和數據庫之間的IO延遲導致延遲。

如果您可以計算下一個結果,而另一個線程正在等待其完成insert您將節省大量時間。

替代解決方案

你可以讓應用程序寫出來的結果到一個文件中(快速),然後批量導入結果使用SSIS或BULK INSERT數據庫。

+0

我會嘗試第二種方法。謝謝。 – user2790440

相關問題