2015-08-28 22 views
1

我有SQL表,它存儲處理作業(不是SQL作業,我們系統中的作業)的數據。如果特定工作超過10分鐘,我不想處理如果插入數據庫記錄的時間超過10分鐘,則發送電子郵件

我有jobsubmittedtime的屬性。 如果DateDiff(minutes,jobsubmittedtime,GETDATE())>10我想一個電子郵件觸發

什麼是實現這一

+1

如何創建工作'supervise_other_jobs'在計劃10分鐘內運行,用'Where DateDiff(minutes,jobsubmittedtime,GETDATE())> 10'查詢您的表並將結果發送至電子郵件? – lad2025

+0

感謝您的建議。我正在爲此工作 – udaya726

回答

0

嘗試的最佳方式:

where jobsubmittedtime > DATEADD(MINUTE, -10, GETDATE()) 

這將允許查詢基礎上優化範圍掃描。

如果改爲寫道:

where DATEDIFF(MINUTE, jobsubmittedtime, GETDATE()) > 10 

則SQL Server可能會選擇做一個全表掃描到的每一行上運行的程序計算DATEDIFF(),並且幾乎沒有第一種方法一樣有效。通常,嘗試對常量和輸入變量進行計算,而不是對行值進行計算。有時候這是不可避免的,但你明白了。

相關問題