簡體   English   中英

更新/插入后阻止提交處理1000萬條記錄的提交

[英]Block commit after Update/Insert for 10 million records being processed

需求需要在Sql Server 2005中進行1000萬條記錄的更新和插入。我已經使用T-SQL創建了存儲過程。 我們需要在上述過程之后進行一次提交嗎,比如說一次提交了10000條記錄。 如果是這樣,我該如何寫每10000條記錄的提交語句。 任何想法,將不勝感激。

通常,批量刪除/更新/插入的一種方法是使用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的大小),表的寬度是多少正在插入等?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM