Sql server CPU消耗查询

Sql server CPU消耗查询,sql-server,database-performance,Sql Server,Database Performance,我的QA数据库有一些令人不安的CPU峰值。我为SQL Server 2017应用了一个推荐的修补程序,虽然有一些改进,但没有太多改进。我运行了一个关于每个查询最高CPU使用率的报告,在前面有一个方法,总时间为70秒(不是毫秒,超过一分钟!)。因为这只是一个问题,我认为尴尬的日期转换可能是罪魁祸首,对吗?据我所知,它会对表中的每一行重复转换 SELECT [XREF_lib_IMPL].[..] FROM [XREF_LIB_IMPL] WHERE [XREF_LIB_IMPL].[F

我的QA数据库有一些令人不安的CPU峰值。我为SQL Server 2017应用了一个推荐的修补程序,虽然有一些改进,但没有太多改进。我运行了一个关于每个查询最高CPU使用率的报告,在前面有一个方法,总时间为70秒(不是毫秒,超过一分钟!)。因为这只是一个问题,我认为尴尬的日期转换可能是罪魁祸首,对吗?据我所知,它会对表中的每一行重复转换

SELECT 
   [XREF_lib_IMPL].[..] 
FROM [XREF_LIB_IMPL] 
WHERE [XREF_LIB_IMPL].[FK.XREF_LIB_IMPL]=@1 
  AND CONVERT([varchar](50).[XREF_LIB_IMPL].[DATE_EXPIRED].(120))=@

在启用了“包含执行计划”(Include Execution Plan)的情况下,在SSMS中运行查询,应查明罪魁祸首。。可能是你的皈依者。可能是阻塞。这可能是一系列其他资源争用。它可以是并行的。可能是。。。(任何)转换的
Convert
对您没有任何好处,但是-它使
Where
子句中的元素不可用于特区政府。如果
Date\u Expired
是一个日期,则应将任何参数转换为日期,并直接进行比较。还要确保你的指数和统计数据是最新的。