我有SQL表存储处理作业的数据(不是SQL作业。我们系统中的作业)。如果特定工作超过10分钟而没有处理
,我想收到提醒我有jobsubmittedtime的属性。
如果DateDiff(minutes,jobsubmittedtime,GETDATE())>10
我想要电子邮件触发器
实现这一目标的最佳方式是什么?
答案 0 :(得分:0)
尝试:
where jobsubmittedtime > DATEADD(MINUTE, -10, GETDATE())
这将允许查询根据范围扫描进行优化。
如果您改为写道:
where DATEDIFF(MINUTE, jobsubmittedtime, GETDATE()) > 10
然后SQL Server可以选择执行全表扫描以在每一行上运行该过程来计算DATEDIFF(),并且几乎与第一种方法一样有效。通常,尝试对常量和输入变量进行计算而不是行值。有时它是不可避免的,但你明白了。