[有趣]只發生在系統運作初期的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 訊息傳遞。

...繼續閱讀 »

淺談計算欄位(Computed Column)的PERSISTED引數

相信很多情境下會在資料表的欄位設計上用到所謂的計算欄位(Computed Column),顧名思義該欄位存放的值就是經過計算的一個結果。然而計算欄位的資料內容一般常會是取出資料後即時運算並顯示結果,但有時候也會因為某些需求希望能將運算結果真實寫入在page中,而這個需求只要在建立資料欄位時加入一個關鍵字Persisted即可。

...繼續閱讀 »

修改MSSQL Instance定序

日前發現一個資料庫定序跟其他資料庫不同,為求一致性,我們可以單純用Alter Database去改資料庫的定序。但這樣的改法並不會修正該資料庫中其他資料表欄位原有的定序,只會影響未來新增的資料表。所以如果舊資料表欄位也要更改定序的話會需要Alter Table Alter Column 或 建立新資料表並重倒資料。

...繼續閱讀 »