一.什么是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出来放到查询分析器执行,找到问题数据源头;另外一个就是查看语句执行时间,找出耗时较长的语句对其进行优化,如下图: