簡體   English   中英

存儲過程性能在臨時表中發布150萬條記錄

[英]Stored Procedure Performance Issue 1.5 Million Records in Temp Table

我有一個場景,我在存儲過程中執行以下查詢作為SQL代理作業的一部分,並且它需要幾個小時才能完成執行。 任何人都可以建議一個更好的方法來重寫這個查詢? #ownership表有150萬條記錄。

WHILE (@last_update > 0)
BEGIN
 INSERT INTO #ownership
     SELECT DISTINCT
        a.ParentNumber,
         b.ChildNumber
     FROM #ownership a,
     #ownership b
     WHERE a.ChildNumber = b.ParentNumber
     AND NOT EXISTS (SELECT 1
                   FROM #ownership c
                  WHERE c.ParentNumber = a.ParentNumber
                    AND c.ChildNumber  = b.ChildNumber)
     SET @last_update = @@ROWCOUNT
END

你可以為這個代碼的性能做的最重要的事情是INDEX #ownershipParentNumber, ChildNumber

暫無
暫無

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

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