我有一个SQL表,它存储处理作业(不是SQL作业)的数据。我们系统中的工作)。如果某个作业超过10分钟且没有处理
,我想获得一个警报我有jobsubmittedtime属性。如果DateDiff(minutes,jobsubmittedtime,GETDATE())>10
我想要一个电子邮件触发器
实现这一目标的最佳方法是什么
尝试:
where jobsubmittedtime > DATEADD(MINUTE, -10, GETDATE())
这将允许查询基于范围扫描进行优化。
如果你写:
where DATEDIFF(MINUTE, jobsubmittedtime, GETDATE()) > 10
那么SQL Server可能会选择做一个全表扫描,在每一行上运行这个过程来计算DATEDIFF(),并且不像第一种方法那么有效。通常,尝试对常量和输入变量进行计算,而不是对行值进行计算。有时候这是不可避免的,但你明白了。