星期四, 10月 20, 2022

[SQL] 作業失敗

收到 Job fail mail 通知,是偵測 block 超過設定時間並收集相關資訊的 job 發生異常

收到的通知 mail   

[SQL] 作業失敗-2

SQL Agent 內查到的錯誤訊息

[SQL] 作業失敗-1

錯誤訊息
轉換 expression 到資料類型 int 時發生算術溢位錯誤。 [SQLSTATE 22003] (錯誤 8115) 陳述式已經結束。 [SQLSTATE 01000] (錯誤 3621)
情況筆記

該 Job 會把捕捉到的 block 資訊 insert 進特定 table 內留存,方便事後分析,從錯誤訊息來看是資料要 insert 進 int 欄位時發生錯誤,從文件上確認 DMV 資料型別發現,原來 sys.dm_os_waiting_tasks wait_duration_ms 欄位是 bigint,但是收集 table 上是開 int,收到 mail 通知時有趕快去 product 上手動執行 DMV 語法查 block,有重現該 insert 錯誤

其實不知道為什麼會發生錯誤,因為 wait_duration_ms 沒有破 int 大小限制,然後 table 內有很多資料都比抓到的 wait_duration_ms 還要大,不知道 SQL Server 內部到底轉換了甚麼 ,反正該機制有回復正常就好

沒有留言:

張貼留言