[SQL Server][DeakLock]觀察死結的工具(一)首部曲

最近的案子中,在測試及正式環境都碰到了幾次資料庫交易死結(DeadLock)而有交易被犧牲,有一次還碰上了查詢交易的死結(內部平行查詢死結intra-Query Parallel Deadlock),由於SQL Server發生死結(DeadLock)的原因很多,因為經驗不足,自己沒碰過的碰過的多,踏出解問題的第一步就是紀錄死結資訊。

來筆記幾種觀察死結問題的工具。

  • Trace flag(1222,1204)
  • SQL Profiler
  • Extended events
...繼續閱讀 »

[SQL Server] tempdb定序衝突(collation conflict)

延續SQL Server儲存Unicode補充字集的話題,因為同事的目標資料庫是既有資料庫,沒辦法採用新建立資料庫的方式,後來同事直接把資料庫改成支援補充字集的定序(*_SC),一開始很順利,但使用到tempdb,像是join #table 或是union all #table時發現了定序衝突(collation conflict)問題。

來筆記另外兩種解決定序衝突(collation conflict)的作法:

...繼續閱讀 »

[SQL Server][SSMS]物件總管的篩選功能(Filter)

資料庫內的資料表數目快速攀升,想要檢視某個資料表內容或是因為工作分組經常要使用特定名稱開頭或特定schema的資料表,都得要用滑鼠滾輪穿過很許多路人甲乙丙丁下才能遇到真愛;如果資料表數目有幾百個就需許多人生歷練,這禮拜看其他部門同事操作SSMS管理工具,快來筆記好用的filter setting。

...繼續閱讀 »

[SQL Server]改善I/O效能- NTFS Allocation Unit Size(4KB vs 64KB)

SQL Server安裝在Windows OS中,而存放Data的磁碟幾乎都格式化為NTFS檔案系統,預設磁碟分割大小則是4KB。

Super SQL Server社群楊老師的文章得到收穫和啟發,NTFS檔案系統預設的4KB可能不是SQL Server Data/Log Page的存取最佳值,來試試看其他Allocation Unit Size對效能的幫助。

...繼續閱讀 »