SQL Server 2012如何打开2016的profiler文件
作者:markjiang7m2
原文地址:https://www.cnblogs.com/markjiang7m2/p/10980191.html
背景
在上星期,公司負責support的同事接到反饋說某個項目生產環境上的某個頁面加載很慢,一般遇到這種問題,我們的support同事都會先上數據庫抓一下profiler,然后再讓我們開發的找原因。但是,當我嘗試打開這個profiler文件的時候,卻彈出了錯誤提示:
找不到跟蹤定義文件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目錄,或者將事件探查器連接到該服務器以自動生成文件。然后重新打開該跟蹤文件。
然后點擊確認,又彈出第二個提示框
無法打開文件。文件可能已損壞,也可能是數據格式不正確。
好吧,我承認我的第一反應是這個文件損壞了,而不是覺得是sql server版本的問題。
然后我做了一個測試,在本地遠程連接到測試服務器進行抓取profiler,并保存文件,一切都正常。但是當我重新打開這個文件的時候,我又得到了之前的錯誤提示,我才考慮可能是因為版本的問題。
解決方案
support的同事跟我說,這個文件是要在SQL Server 2016上面才能打開的,因為生成環境用的是2016。當然,他沒有說錯,是可以這么操作的,只是這樣,好像比較麻煩,而且感覺這操作還有點笨。。 好吧,其實SQL Server在第一個提示中已經給了解決方案了,只是被我習慣性地忽略了。
我本地安裝的實例是SQL Server 2012,然后服務器上面數據庫實例是SQL Server 2016,所以我本地就缺少了2016的跟蹤定義文件,只要把這個文件復制到我本地,就可以正常打開2016的profiler文件了。
2016 profiler的跟蹤定義文件路徑
本地路徑
C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Profiler\TraceDefinitions
這個解決方案也同樣用于SQL Server 2008。
延伸
其實還可以注意到,如果我們直接在SQL Server 2012中連接2016抓取profiler時,沒有任何的模板可以選擇,這就需要我們每次都重新設置跟蹤的選項,很是麻煩。
這個問題跟上面的問題有點類似,是因為SQL Server 2012 profiler中缺少了2016 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文件,再導入到其它機器上面使用
總結
今天分享給大家的文章不是什么干貨,只是記錄一下在我工作中遇到的問題和解決方案,希望對各位有用。也算是一點小技巧吧,對于經常使用profiler的朋友來說確實是能省下不少功夫的。今天就先跟大家介紹到這里,希望大家能持續關注我們。
總結
以上是生活随笔為你收集整理的SQL Server 2012如何打开2016的profiler文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 「分布式系统理论」系列专题
- 下一篇: 分布式Redis的分布式锁 Redloc