[有趣]只發生在系統運作初期的DeadLock事件

今日一新系統上線,30分鐘後AP同仁傳了系統錯誤訊息給我,如下圖所示。從字面上來看就是系統的資料庫發生了DeadLock。我先開始錄SQL的Trace來抓DeadLock事件,但似乎只有系統開始運作的前30分鐘有發生,後來就沒再發生DeadLock事件。於是乎我就透過預設的Extented Event來檢視之前DeadLock事件是那些資源互咬,並檢視當下時間所執行的語法。但我怎麼看當時執行的語法都覺得不至於產生DeadLock啊。

...繼續閱讀 »

還原msdb時發生資料庫中未啟用 Service Broker 的錯誤訊息

日前在災難復原演練過程中,將msdb資料庫備份還原到另一台新建立的測試主機時發生

訊息 14650,層級 16,狀態 1,程序 msdb.dbo.sp_send_dbmail,行 73 [批次開始行 0]
在此資料庫中未啟用 Service Broker 訊息傳遞。請使用 ALTER DATABASE 陳述式來啟用 Service Broker 訊息傳遞。

...繼續閱讀 »

利用計畫指南來重用執行計畫降低CPU壓力

很久以前就聽聞過SQL的計畫指南功能,但我一直沒有用過。可以從字面上初步了解就是針對某些查詢我們可以干涉最佳化引擎,讓SQL根據我們的需求來跑執行計畫。一些官方文件的舉例就是在不異動查詢語句的狀況下讓管理者可以針對語句下hint(如MAXDOP設定及OPTIMIZE FOR或Recompile等)。

...繼續閱讀 »