做者:markjiang7m2
原文地址:http://www.javashuo.com/article/p-dzvxulzc-my.htmlhtml
在上星期,公司負責support的同事接到反饋說某個項目生產環境上的某個頁面加載很慢,通常遇到這種問題,咱們的support同事都會先上數據庫抓一下profiler,而後再讓咱們開發的找緣由。可是,當我嘗試打開這個profiler文件的時候,卻彈出了錯誤提示:sql
找不到跟蹤定義文件Microsoft SQL Server TraceDefinition 13.0.0.xml(用於打開的跟蹤文件x.trc)。請鏈接到Microsoft SQL Server 13.0.0服務器並將文件Microsoft SQL Server TraceDefinition 13.0.0.xml複製到您的C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Profiler\TraceDefinitions目錄,或者將事件探查器鏈接到該服務器以自動生成文件。而後從新打開該跟蹤文件。shell
而後點擊確認,又彈出第二個提示框數據庫
沒法打開文件。文件可能已損壞,也多是數據格式不正確。服務器
好吧,我認可個人第一反應是這個文件損壞了,而不是以爲是sql server版本的問題。sqlserver
而後我作了一個測試,在本地遠程鏈接到測試服務器進行抓取profiler,並保存文件,一切都正常。可是當我從新打開這個文件的時候,我又獲得了以前的錯誤提示,我才考慮多是由於版本的問題。測試
support的同事跟我說,這個文件是要在SQL Server 2016上面才能打開的,由於生成環境用的是2016。固然,他沒有說錯,是能夠這麼操做的,只是這樣,好像比較麻煩,並且感受這操做還有點笨。。
好吧,其實SQL Server在第一個提示中已經給瞭解決方案了,只是被我習慣性地忽略了。code
我本地安裝的實例是SQL Server 2012,而後服務器上面數據庫實例是SQL Server 2016,因此我本地就缺乏了2016的跟蹤定義文件,只要把這個文件複製到我本地,就能夠正常打開2016的profiler文件了。server
C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Profiler\TraceDefinitions\Microsoft SQL Server TraceDefinition 13.0.0.xml
C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Profiler\TraceDefinitions
這個解決方案也一樣用於SQL Server 2008。xml
其實還能夠注意到,若是咱們直接在SQL Server 2012中鏈接2016抓取profiler時,沒有任何的模板能夠選擇,這就須要咱們每次都從新設置跟蹤的選項,非常麻煩。
這個問題跟上面的問題有點相似,是由於SQL Server 2012 profiler中缺乏了2016 profiler的模板文件,因此只要將2016 profiler上的模板文件複製到本地就能夠了。
此次是須要將整個文件夾一塊兒複製下來
C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Profiler\Templates\Microsoft SQL Server\130
C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Profiler\Templates\Microsoft SQL Server
從新打開profiler就能夠看到2016的模板了。
再延伸一下。常用profiler的朋友應該都會遇到這樣的狀況,SQL Server提供的模板跟本身想要的不太同樣,這個時候,咱們就能夠新建屬於本身的模板了。
創建好的profiler模板還能夠導出成.trc
文件,再導入到其它機器上面使用
參考文獻
本文在編寫過程當中引用或參考瞭如下文章中的部份內容,若有侵權,請聯繫修改或刪除。
http://www.javashuo.com/article/p-whgrzdok-bv.html
今天分享給你們的文章不是什麼乾貨,只是記錄一下在我工做中遇到的問題和解決方案,但願對各位有用。也算是一點小技巧吧,對於常用profiler的朋友來講確實是能省下很多功夫的。今天就先跟你們介紹到這裏,但願你們能持續關注咱們。