0
需要更新和插入Sql Server 2005中的1000萬條記錄。 我已經使用T-SQL創建了一個存儲過程。 我們是否需要在上面的過程之後進行提交,比如說時間上犯下了10000條記錄。如果是的話,我如何爲每10000條記錄寫一條提交語句。 任何想法,將不勝感激。正在處理的1000萬條記錄的更新/插入後的塊落實
需要更新和插入Sql Server 2005中的1000萬條記錄。 我已經使用T-SQL創建了一個存儲過程。 我們是否需要在上面的過程之後進行提交,比如說時間上犯下了10000條記錄。如果是的話,我如何爲每10000條記錄寫一條提交語句。 任何想法,將不勝感激。正在處理的1000萬條記錄的更新/插入後的塊落實
通常,批量刪除/更新/插入的方法是使用WHILE
循環。我通常遵循的模式是:
WHILE 1=1
BEGIN
INSERT INTO dbo.MyTable
(field1, field2, field3...)
SELECT TOP 100000 (field1, field2, field3...)
FROM dbo.MySourceTableorQuery as S
WHERE NOT EXISTS (
SELECT * FROM dbo.SourceTableorQuery as S
WHERE s.PrimaryKey = MyTable.PrimaryKey)
IF @@ROWCOUNT<100000 BREAK;
END
至於「你是否需要」,這是不可能沒有很多其他信息的答案。它是什麼類型的查詢,表結構是什麼樣的,當前運行需要多長時間,你如何獲得磁盤空間(如果它是單個事務,你真的會增加tempdb的大小),你的表有多寬正在插入,等?
你有多少次/經常這樣做? – JeffO 2010-12-07 15:41:29