繁体   English   中英

SQL Server高CPU使用率

[英]SQL Server High CPU Usage

我在客户端数据的ETL期间遇到问题,其中SQL占用了我的开发服务器上的100%CPU。 这只是偶尔发生,我已经找到了引起该问题的SP的特定部分,但不确定为什么它使用了如此多的CPU。

LoadId和ClientId都是SP的输入变量。 基本上,我正在尝试查找登台表(新加载的数据)中的任何对象ID是否与现有对象(针对特定客户端)匹配,并且还检查验证表(数据在处理之前得到验证检查) )中的任何错误。

SELECT  src.Id ,
            o.Id ,
            CASE WHEN o.Id IS NULL THEN 0
                 ELSE 1
            END
    FROM    ObjectsStaging src
            LEFT OUTER JOIN client.Objects o ON src.Id = o.UniqueId
    WHERE   src.LoadId = 22
            AND ( o.ClientId IS NULL
                  OR o.ClientId = 3
                )
            AND NOT EXISTS ( SELECT 1
                             FROM   dbo.ValidationLog v
                             WHERE  v.LoadId = 22
                                    AND v.RowId = src.RowId )

也许尝试这样做,但是将v.PK更改为V表中的Non nullible列。

SELECT  src.Id ,
            o.Id ,
            CASE WHEN o.Id IS NULL THEN 0
                 ELSE 1
            END
    FROM    ObjectsStaging src
            LEFT OUTER JOIN client.Objects o ON src.Id = o.UniqueId
            LEFT OUTER JOIN dbo.ValidationLog v on v.LoadId = 22 AND v.RowId = src.RowId
    WHERE   src.LoadId = 22
            AND ( o.ClientId IS NULL
                  OR o.ClientId = 3
                )
            AND v.PK is null -- V.loadid is null ?   --(same as not exists)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM