本文導讀
1、了解Profiler簡單用法
2、相關參數說明
3、如何快速定位到自己要跟蹤的SQL
當一個程序開發到一定程度,或者使用某些框架后,無法得知sql語句是如何書寫的,但是因為BUG或者其他原因想找出界面操作后,產生的SQL語句,那么就需要使用到sql的一個跟蹤工具------Sql Server Profiler(某些SQL05的版本安裝后好像沒有這個工具,08的都是有的);
首先我們需要開始這個工具,打開SQL后,
就可以打開這個工具;下面我們主要來說明下新建跟蹤時的各個參數的說明,以及如何快速定位到自己想要的SQL;
跟蹤器默認只提供了圖中的的一些事件比如最后兩個:
指示已完成 Transact-SQL 批處理。 |
|
指示正在啟動 Transact-SQL 批處理。 |
如果覺得事件還不夠,那么你還可以選擇勾上“選擇所有事件”,對於其他事件的說明,見MSDN的詳細說明http://msdn.microsoft.com/zh-cn/library/ms175481.aspx
只要事件前面被勾上的,執行SQL的時候會自動監聽到想應得執行SQL;
我們默認點擊運行后,會看到很多冒出很多莫名其妙的SQL;
看圖中紅框框中的一些數據,第一列是事件名稱,后面的執行的SQL內容數據,在往后就是一些應用程序的名稱(誰觸發的這條SQL),NTUsername是windows用戶名,LoginName是登陸SQL服務的用戶名;后面的參數不一一介紹,可以在新建查詢的時候選擇列篩選器,查看具體沒一列的說明
列篩選器也就是過濾條件,比如說我只想監聽用sa連接到SQL服務執行的相關事件,那么選中LoginName選擇類似於就行了;那么我們就只會監聽到通過sa連接到數據庫相關的事件;我們來測試一下具體的,我們在sql查詢分析器中寫一段SQL跟蹤出來;
然后運行的結果如下:
這條我是根據ApplicationName來過濾的,還有根據其他你自己想要的列來快速篩選到你想要的數據;同樣你想要有更多的列來篩選,在新建跟蹤的時候勾上“顯示所有列”就OK了;
如果你不知道篩選列的數據怎么填,那你可以不做列篩選執行一次你要跟蹤的步驟,然后在眾多不知道啥東西的語句中找一次你的執行SQL,分析其過濾條件,然后在來新建跟蹤,這樣就可以更精准的定位了;
另:得到自己想要的跟蹤的SQL后,還可以拿這些跟蹤出來的數據做數據優化分析;
詳見:http://hi.baidu.com/datianshen/item/d11d38a887c64d716dd45530