TIPS-調整 SQL Agent 作業記錄筆數限制

查詢 SQL Agent 排程執行問題時,發現一個狀況:使用 Log File Viewer 查詢作業記錄(Job History Log),大部分排程的執行歷程都是空的(如下圖),只有少數幾個排程有內容:

研究後學到一件事-SQL Agent Job History 有預設筆數限制,預設值為所有排程作業總共 1000 筆,每項排程作業最多 100 筆。在我們的排程作業中,有幾個排程每兩分鐘或五分鐘就執行一次,很快把 1000 筆配額用光光,因而產生作業記錄只剩下高頻率排程的記錄,超過一天的記錄全部被擠掉消失無蹤。

因此,當 SQL Agent 的排程數量多、步驟複雜或頻率較高,為避免出事無記錄可追,就應調整設定。查到一篇不錯的文章:Check your SQL Agent history settings before it’s too late!,其中有計算公式:

每項作業最大歷程記錄筆數 = 執行次數 * (最大步驟數 + 1)
歷程記錄資料量 = 記錄筆數 * 1.5KB

還有一種務實做法是把上限拉大或取消上限,實際跑一陣子再由 msdb.dbo.sysjobhistory 實測筆數大小,進而依保留期間決定上限及要準備空間,可以估算得更精確。

總之,使用 SQL Agent 排程記得事先規劃記錄空間,不要等遇到事故才發現行車記錄器記憶卡被蓋掉,可就欲哭無淚了。

【延伸閱讀】

歡迎推文分享:
Published 21 August 2017 11:14 PM 由 Jeffrey
Filed under:
Views: 2,419



意見

沒有意見

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<August 2017>
SunMonTueWedThuFriSat
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789
 
RSS
創用 CC 授權條款
【廣告】
twMVC

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication