MS SQL Tuning

使用SQL Server Profiler 來追蹤那些活動是長時間執行的,這些活動可能需要調整sql statement或是有遺漏掉index,這是常見的造成死結的問題。

 

 

首先啟動SQL Server Profiler, 然後新增一個Trace, 會跳出Trace Properties讓你選擇要用那種template來執行。還有要追蹤那些事件(event)。你也可以自定義template, 方便未來使用。

下列這個是用Duration這個template來作示範圖,TextData可以用來查看是在執行那些sql statement, 可再搭配上一篇的Execution Plan查看是否有遺漏index的。

你也可以去查看Deadlock Graph Event, 尤其在系統上線後一段時間後,需要去追蹤。這是避免一些經驗不足的開發人員,沒有設計好sql structure,或是在程式端對交易(transaction)的濫用, 或是在繁雜的運算程序裏面使用了交易(transaction)。曾遇過一個大型的系統,不當的使用交易(transaction),在每一個單存的select的指令也使用了交易(transaction),進而托垮了整個sql server。

參考來源:

Detecting and Ending Deadlocks

https://technet.microsoft.com/en-us/library/ms178104(v=sql.105).aspx

Analyzing Deadlocks with SQL Server Profiler

https://technet.microsoft.com/en-us/library/ms188246(v=sql.105).aspx

資深IT人Jack der工作室

email:jackliao.soho@gmail.com

skype:jack.liao72