一.什么是SQL Profiler
SQL Server Profiler 是一个功能丰富的界面,用于创建和管理跟踪并分析和重播跟踪结果。 事件保存在一个跟踪文件中,稍后试图诊断问题时,可以对该文件进行分析或用它来重播特定的一系列步骤。
二.为什么要使用SQL Profiler
在实际开发中,我们的数据库应用系统因为不可避免会存在有大量表,视图,索引,触发器,函数,存储过程,sql语句等,所以会出现一系列问题,有问题不可怕,找对工具很重要。接下来我就介绍一款性能检测工具--SQL Server Profiler,它可以对sql运行情况进行跟踪,从而找出问题所在。 SQL Server Profiler 是 SQL 跟踪的图形用户界面,用于监视数据库引擎或 Analysis Services 的实例。 您可以捕获有关每个事件的数据并将其保存到文件或表中供以后分析。
例如:
可以对生产环境进行监视.
了解哪些存储过程由于执行速度太慢而影响了性能。
同时SQL Server Profiler 用于下列活动中:
逐步分析有问题的查询以找到问题的原因。
查找并诊断运行慢的查询。
捕获导致某个问题的一系列 Transact-SQL 语句。 然后用所保存的跟踪在某台测试服务器上复制此问题,接着在该测试服务器上诊断问题。
监视 SQL Server 的性能以优化工作负荷。 有关为数据库工作负荷而优化物理数据库设计的信息,请参阅数据库引擎优化顾问。
使性能计数器与诊断问题关联。
SQL Server Profiler 还支持对 SQL Server 实例上执行的操作进行审核。 审核将记录与安全相关的操作,供安全管理员以后复查。
三.SQL Profiler的使用方法
1.首先是打开SQL Profiler,如下图:
2.打开工具选择对应的服务器,如下图:
3.点击确定之后将标签页切换到事件选择页签,勾选如下选项(有的服务器默认会显示所有列,这里选择下图中的三个即可),如下图:
5.打开列筛选器的相应界面后,可以根据两种方式进行筛选过滤,分别是DataBaseName和HostName,如下图:(以下步骤可跳过,直接点击运行也可看到数据)
6.如果是选择DataBaseName进行过滤的时候,返回主界面找到你所需要跟踪的数据库名,如下图:
7.查找到对应的数据库名称之后,可以在DataBaseName过滤条件中填入对应的值,如下图:
8.也可通过程序主机名进行过滤(例如:我的程序主机名是SKTNB033),如果不清楚自己的主机名可通过语句(select HOST_NAME())进行查询。
9.就我个人而言,SQL Profiler可以用做两个用途,一个是查看执行过的SQL,将语句copy出来放到查询分析器执行,找到问题数据源头;另外一个就是查看语句执行时间,找出耗时较长的语句对其进行优化,如下图: