從select語句將行插入表中並插入到表中的更快方法?從另一個表中插入數以百萬計的行
Insert into PartyMain
Select [PermID]
,[IsOptOut]
,[UpdatedOn]
,[FK_DataSource]
From PartyMain
用6M行經由選擇服用>4分鐘
從select語句將行插入表中並插入到表中的更快方法?從另一個表中插入數以百萬計的行
Insert into PartyMain
Select [PermID]
,[IsOptOut]
,[UpdatedOn]
,[FK_DataSource]
From PartyMain
用6M行經由選擇服用>4分鐘
插入件是我能想到的插入數據的最快方式。但是,您可能可以在應用程序工作流程中進行改進。
我想在應用程序啓動過程中有某種按鈕。而不是在用戶告訴應用程序(我正在做這個假設)時進行插入操作,您是否可以有一個每隔X秒執行一次傳輸的進程?或者每隔X秒檢查一次,如果要傳輸的行數大於Y,則運行傳輸......換句話說,不要等到有600萬行。
編輯 - 另一個選項可能是database triggers。
PartyMain上有任何索引嗎?如果是的話,你可能要
可能會提高性能。
另外 - 你確定你從PartyMain讀取並插入PartyMain?
好主意!我會試着看看是否有任何改進。 – 2011-05-11 16:05:06
@Marty - 太棒了!我期待着看到這是否適合你。 – YetAnotherUser 2011-05-11 16:24:26
對於600萬行大約4分鐘也不算太壞......大約在附近。每秒20,000個。你期待它需要多久?您的I/O子系統的最大理論吞吐量是多少? – 2011-05-11 00:42:45
這是每秒25,000次插入,你確定它很慢嗎?可能這裏重要的是數據庫的調整參數,比如它分配盤區的方式,建立索引,加載因子等。 – entonio 2011-05-11 00:43:54
我同意米奇這聽起來不錯。不妨看看這是否真的有必要。你試圖達到什麼目標? – 2011-05-11 00:44:49