Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server高CPU使用率_Sql Server_Cpu Usage_Etl - Fatal编程技术网

Sql server SQL Server高CPU使用率

Sql server SQL Server高CPU使用率,sql-server,cpu-usage,etl,Sql Server,Cpu Usage,Etl,在客户端数据的ETL过程中,SQL占用了我的开发服务器上100%的CPU,我遇到了一个问题。这只是偶尔发生的,我已经找到了导致它的SP的特定部分,但不确定它为什么会占用这么多CPU LoadId和ClientId都是SP的输入变量。基本上,我尝试查找暂存表中新加载的数据中的任何对象ID是否与特定客户端的现有对象匹配,并且在处理任何错误之前,签入验证表数据会得到验证检查 SELECT src.Id , o.Id , CASE WHEN o.Id I

在客户端数据的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表中将v.PK更改为不可为空的列

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)

查询分析器怎么说?请发布整个sp,因为可能有很多原因导致此查询分析器没有提出任何建议。它说对象表上的索引搜索需要70%的成本。另外,我不会发布整个SP,因为它不需要。我可以通过运行此查询重现问题。objects表有大约2.5mil行。src.Id和o.UniqueId是完全相同的数据类型吗?