在SQL Server中可以通過擴展事件來自動抓取阻塞,以下是詳細流程:
-
開啟阻塞跟蹤配置:
? 執行以下SQL語句來啟用相關配置:
EXEC?sp_configure'show?advanced?options',?1;?
RECONFIGURE;?
EXEC?sp_configure?'blocked?process?threshold',?10;?
RECONFIGURE;?
-?上述代碼中,`blocked process threshold`設置為10,表示當阻塞持續時間達到10秒時,SQL Server將生成阻塞進程報告。可根據實際需求調整該值。
-
2創建擴展事件會話:
-
? 打開Microsoft SQL Server Management Studio,點擊“擴展事件”“會話”。
-
? 在會話節點,右鍵選擇【新建會話】。
-
? 輸入會話名稱,并勾選“在服務器啟動時自動啟動此會話”,以保證服務器啟動時自動啟動擴展事件。
-
? 選擇“blocked_process_report”事件,點擊【確認】后,可以看到新建立的事件會話。
-
-
3.?啟動會話:選擇創建好的會話,右鍵彈出菜單,選擇【啟動會話】。
-
4.?監控與查看結果:
-
? 啟動會話后,發生阻塞時,可通過【監控實時數據】來查看數據。
-
? 點擊阻塞的記錄,雙擊字段為“blocked_process”的值列,可看到抓到的阻塞會話詳細信息。
-
?
?相關參考:
SQL?Server中自動抓取阻塞的詳細流程