應用程序將排序後的數據逐行插入表中,並且希望改進插入的性能。將已排序的數據插入到具有聚簇索引的表中
我應該在運行應用程序(開始時爲空)還是在運行結束之前創建聚集索引?
也許最好是將數據導入臨時表並將其插入到每個X插入的主表中?
應用程序將排序後的數據逐行插入表中,並且希望改進插入的性能。將已排序的數據插入到具有聚簇索引的表中
我應該在運行應用程序(開始時爲空)還是在運行結束之前創建聚集索引?
也許最好是將數據導入臨時表並將其插入到每個X插入的主表中?
我不建議在需要進行導入時刪除和添加索引。
你評論說
來源是在一個單獨的查詢
這意味着你可以繞不單獨插入語句插入得到各 結果由應用程序進行的計算。因此,下一個需要考慮的解決方案是對應用程序進行多線程。
讓數據庫通過索引處理數據的排序,這將是應用程序和數據庫之間的IO延遲導致延遲。
如果您可以計算下一個結果,而另一個線程正在等待其完成insert
您將節省大量時間。
替代解決方案
你可以讓應用程序寫出來的結果到一個文件中(快速),然後批量導入結果使用SSIS或BULK INSERT數據庫。
我會嘗試第二種方法。謝謝。 – user2790440
只是讓你知道 - 聚集索引說*沒有*關於您將在以後從表中獲取行的順序。 –
您正在使用哪個版本的SQL Server(更新問題標籤)?數據的來源是什麼? Excel,CSV?着眼於使用SQL Server的導入工具而不是編寫自己的應用程序。 – Tony
來源是由將應用程序將每個結果插入到單獨的查詢中進行的計算。 – user2790440