【问题标题】:Stored Procedure Performance Issue 1.5 Million Records in Temp Table存储过程性能问题 临时表中有 150 万条记录
【发布时间】:2019-05-02 04:20:36
【问题描述】:

我有一个场景,我在存储过程中执行以下查询作为 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

【问题讨论】:

标签: sql sql-server stored-procedures query-performance


【解决方案1】:

你可以为这段代码的性能做的最重要的事情是在ParentNumber, ChildNumber上索引#ownership

【讨论】:

    猜你喜欢
    • 2011-09-29
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多