带你了解SQL Server的性能优化工具Profiler

SQL Server Profiler是什么

SQL Server Profiler是一个界面,用于创建和管理跟踪并分析和重播跟踪结果。 这些事件保存在一个跟踪文件中,稍后试图诊断问题时,可以对该文件进行分析或用它来重播一系列特定的步骤。同时也可以利用它来对跟着文件进行分析,分析完成后会给出优化建议。

 

SQL Server Profiler的使用

下面我将一步一步以图片+文字解说的方式告诉大家该如何使用它来进行跟踪和优化。

 

第一步

启动SSMS——>【工具】——>【SQL Server Profiler】,即可启动SQL Server Profiler,如图1:

带你了解SQL Server的性能优化工具Profiler

图1 启动SQL Server Profiler

 

第二步

启动后会再次要求连接被跟踪的数据库。

 

第三步

设置跟踪属性,根据界面提示填入相关信息,如图3:

带你了解SQL Server的性能优化工具Profiler

 图3 设置跟踪属性常规页面

 

第四步

设置【事件选择】内容,根据图4中的提示,勾选相关内容即可:

带你了解SQL Server的性能优化工具Profiler

图4 事件选择设置页面

 

第五步 

在【事件选择】页面继续勾选显示DatabaseName列,方便显示被跟踪数据库,按图5步骤中操作:

带你了解SQL Server的性能优化工具Profiler

 图5 勾选DatabaseName选项

 

第六步

按图6中步骤,先点击【列筛选器...】在弹出的页面中找到【DatabaseName】选项,然后输入指定数据库名称,这里我们输入AdventureWorks。这是小编本地数据库名称。

带你了解SQL Server的性能优化工具Profiler

图6 输入被跟踪数据库名称

 

第七步

按图7中步骤,选中【TextData】的选项,输入select%,其意思是跟踪以select开头的查询语句,%为通配符。点击【确定】后会弹出一个提示框,点击【确定】即可。

带你了解SQL Server的性能优化工具Profiler

图7 输入被跟踪的TextData

 

第八步

返回SSMS,选择AdventureWorks数据库,新建一个查询,点击【执行】。

 带你了解SQL Server的性能优化工具Profiler

图8 在被跟踪数据库中输入被跟踪的查询语句 

 

第九步

返回SQL Server Profiler查看跟踪界面,如图9在跟踪页面上可以看到刚才执行的查询语句。

带你了解SQL Server的性能优化工具Profiler

 如图9 查看被跟踪的查询语句

 

第十步

将当前的跟踪文件另存为跟踪文件Test.trc,如图10:

带你了解SQL Server的性能优化工具Profiler

 图10 保存跟踪文件

 

第十一步

点击SQL Server Profiler菜单栏中的【工具】——>【数据库引擎优化顾问】开始对刚才的Test.trc文件进行分析,如图11:

带你了解SQL Server的性能优化工具Profiler

 图11 开启引擎优化顾问

  

第十二步

在弹出的页面中,我们开始设置优化顾问。

  1. 在【工作负荷】中找到刚保存的Test.trc文件

  2. 在选择要优化的数据库和表中,我们单独找到需要被分析的表Address

带你了解SQL Server的性能优化工具Profiler

 图12 设置引擎优化界面

 

第十三步

设置完成后,点击【开始分析】即可,如图13:

带你了解SQL Server的性能优化工具Profiler

 图13 开始分析被跟踪文件

 

第十四步

等分析完成后,在索引建议一栏中的最后一列【定义】中会给出优化建议,这里点开,然后点【复制到剪贴板】即可获取优化建议脚本,返回SSMS粘贴后执行即可完成优化。如图14:

带你了解SQL Server的性能优化工具Profiler

图14 获取优化建议脚本

 

第十五步

这一步是和第十四步功能类似,只是更加智能,由系统自动执行,无需复制粘贴执行脚本。点击数据引擎优化顾问的菜单栏的【操作】——>【应用建议...】,在弹出的对话框如图15,点击确定即可自动执行引擎顾问提供的优化建议。

带你了解SQL Server的性能优化工具Profiler

 图15 自动执行优化建议

以上就是SQL Server Profiler的基本使用操作,还有很多其他用处,小伙伴们可以慢慢探索。等你用久了,你会发现这绝对是一个神器!

带你了解SQL Server的性能优化工具Profiler

上一篇:create connection SQLException, url: jdbc:mysql://localhost:3306/xxxx


下一篇:sql server 启用Service Broker时一直处于“执行中”