如何提高此查询的性能

亚历克索

从 dbo.tble 中选择 * 从 dbo.tble 中选择 *

阿米特·库马尔·辛格

下面的几个想法

  1. 删除尽可能多的左连接。尽可能使用内部联接。

  2. 删除子查询以获取 ISerialNumber。稍后在包装查询中获取它。

  3. 如果不存在,则在 WHERE 子句中的列上创建索引。

  4. 不要使用这种日期比较方式。想象一下结果集中每一行的这种转换。

    CONVERT(VARCHAR(8), a.CreationDate, 112) BETWEEN (' + (@StartDate) +
    ') AND (' + (@EndDate) + ')
    

相反,将您的@startDate@EndDate变量转换为日期时间并与a.CreationDate

  1. 在将此查询运行到另一个表变量之前计算这些。在查询中使用这些变量。

    (SELECT ParamValue FROM LMG.dbo.MultiValue(''' + @JurisdictionId + ''','','',1))
    
    SELECT ParamValue FROM LMG.dbo.MultiValue(''' + @StateOfConvictionId + ''','','',1)
    
  2. 在 SQL Server Management Studio 中检查实际执行查询计划。需要注意花费更多成本(百分比)的步骤。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章