SQL Server2012如何打开2016的profiler文件

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目录,或者将事件探查器连接到该服务器以自动生成文件。然后重新打开该跟踪文件。

然后点击确认,又弹出第二个提示框

无法打开文件。文件可能已损坏,也可能是数据格式不正确。

sqlserver_01_profilerfail01

sqlserver_02_profilerfail02

好吧,我承认我的第一反应是这个文件损坏了,而不是觉得是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时,没有任何的模板可以选择,这就需要我们每次都重新设置跟踪的选项,很是麻烦。

sqlserver_03_emptytemplate

这个问题跟上面的问题有点类似,是因为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的模板了。

sqlserver_04_fulltemplate

再延伸一下。经常使用profiler的朋友应该都会遇到这样的情况,SQL Server提供的模板跟自己想要的不太一样,这个时候,我们就可以新建属于自己的模板了。

  • 在 “文件” 菜单上,单击 “模板”,再单击 “新建模板
  • 选择服务器类型,不同版本服务器之间的模板是不通用的
  • 还可以基于现有的模板进行改造

sqlserver_05_newtemplate

建立好的profiler模板还可以导出成.trc文件,再导入到其它机器上面使用

sqlserver_06_exporttemplate

sqlserver_07_importtemplate

参考文献
本文在编写过程中引用或参考了以下文章中的部分内容,如有侵权,请联系修改或删除。
https://www.cnblogs.com/zhang502219048/p/10957612.html

总结

今天分享给大家的文章不是什么干货,只是记录一下在我工作中遇到的问题和解决方案,希望对各位有用。也算是一点小技巧吧,对于经常使用profiler的朋友来说确实是能省下不少功夫的。今天就先跟大家介绍到这里,希望大家能持续关注我们。

posted @ 2019-06-05 20:39  markjiang7m2  阅读(931)  评论(0编辑  收藏  举报
TOP