第一步建庫
第二步建立sp_who3存儲過程
SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享
SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享 View Code
第三步建立[usp_checkElapsedHighSQL]存儲過程
SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享
SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享 第四步建立[usp_Resettbname]存儲過程
SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享
SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享 第五步建立AutocaptureElapsedHighSQL作業
SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享
SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享 第六步建立ResetcheckElapsedHighSQLtbname作業
SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享
SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享 原了解釋:
AutocaptureElapsedHighSQL作業每隔一分鐘調用[usp_checkElapsedHighSQL]存儲過程,而[usp_checkElapsedHighSQL]存儲過程又會調用
sp_who3存儲過程擷取一些目前線上環境的資訊,被記錄到[ElapsedHigh]表裡
ResetcheckElapsedHighSQLtbname作業會在每天的23點59分執行,調用[usp_Resettbname]存儲過程, [usp_Resettbname]存儲過程會将[ElapsedHigh]表
的表名修改為:表名+當天日期,例如:ElapsedHigh2015-6-19 ,這樣就進行了歸檔
SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享 [usp_checkElapsedHighSQL] 存儲過程有兩種調用方式,一種是傳入NULL,那麼[usp_checkElapsedHighSQL] 存儲過程就會抓取最耗時的那個session
如果傳入spid,那麼就會顯示那個spid的session
效果
SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享
SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享 可以看到,參數也能抓取到,一般依靠sys.dm_exec_sql_text視圖和sys.[fn_get_sql]()視圖是無法擷取到參數的
SQL Server profiler也是,它是整個RPC和Statement去抓
而且還會抓取當時的XML執行計劃,點選它就能顯示圖形化的執行計劃,這樣對分析當時語句的執行情況非常有幫助
SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享SQL Server定時自動抓取耗時SQL并歸檔資料腳本分享 如有不對的地方,歡迎大家拍磚o(∩_∩)o