SQL Server2012如何打开2016的profiler文件
sql server 2012如何打开2016的profiler文件
作者:markjiang7m2
原文地址:
背景
在上星期,公司负责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\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。
延伸
其实还可以注意到,如果我们直接在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的朋友来说确实是能省下不少功夫的。今天就先跟大家介绍到这里,希望大家能持续关注我们。
上一篇: 微信小程序车牌号码模拟键盘输入
下一篇: webpack管理输出