SQL Server中的Max函数是否可以进行?

时间:2016-06-27 16:05:44

标签: sql sql-server performance optimization

我正致力于提高运行缓慢的SQL存储过程的性能。

通常我正在尝试优化查询使用的执行计划。我的问题涉及下面的SQL片段;这个SQL是否特别适用于Max函数?

   SELECT MAX(Audit_Date) AS DATE,
          FK_RegisterID
     FROM dbo.[Audit Result Entry Detail]
    INNER 
     JOIN dbo.[Audit Register]
       ON dbo.[Audit Result Entry Detail].FK_RegisterID = dbo.[Audit Register].PK_ID
    WHERE ((SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, Audit_Date))) >= @StartDate 
      AND  (SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, Audit_Date))) <= @EndDate)
      AND part_number IN (@ParticipantNumber)
    GROUP 
       BY FK_RegisterID

任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

感谢所有评论,他们非常有帮助。我在网上找到了这个,这也帮助我理解了如何使我的SQL查询更加可靠。

  

使SQL查询不可搜索的典型情况是   在WHERE子句中包含一个对列值进行操作的函数。   WHERE子句不是唯一可以解决问题的条款;   它也可以对ORDER BY,GROUP BY和HAVING子句产生影响。

     

另一方面,SELECT子句可以包含非sargable   表达式没有对性能产生负面影响。