从dbo.tble中选择* 从dbo.tble
中选择*答案 0 :(得分:2)
下面几点想法
删除尽可能多的左连接。尽可能使用内连接。
删除子查询以获取ISerialNumber。稍后在包装器查询中获取。
如果尚未存在,则在WHERE子句中的列上创建索引。
请勿使用这种日期比较方式。想象一下结果集中每一行的这种转换。
CONVERT(VARCHAR(8), a.CreationDate, 112) BETWEEN (' + (@StartDate) +
') AND (' + (@EndDate) + ')
相反,将您的@startDate
和@EndDate
变量转换为日期时间并与a.CreationDate
进行比较
在将此查询运行到另一个表变量之前计算这些。 在查询中使用这些变量。
(SELECT ParamValue FROM LMG.dbo.MultiValue(''' + @JurisdictionId + ''','','',1))
SELECT ParamValue FROM LMG.dbo.MultiValue(''' + @StateOfConvictionId + ''','','',1)
在SQL Server Management Studio中检查实际执行查询计划。需要花费更多成本(百分比)的步骤。