SQL Server 跟踪工具 Profiler
SQL Profiler 是什么?
SQL Server Profiler 是一个功能丰富的界面,用于创建和管理跟踪并分析和重播跟踪结果。 事件保存在一个跟踪文件中,稍后试图诊断问题时,可以对该文件进行分析或用它来重播特定的一系列步骤。
为什么要使用SQL Profiler
在实际开发中,我们的数据库应用系统因为不可避免会存在有大量表,视图,索引,触发器,函数,存储过程,sql 语句等,所以会出现一系列问题。这时就需要 SQL Server 的性能检测工具 — Profiler,它可以对 sql 运行情况进行跟踪,从而找出问题所在。
SQL Server Profiler 是 SQL 跟踪的图形用户界面,用于监视数据库引擎或 Analysis Services 的实例。 您可以捕获有关每个事件的数据并将其保存到文件或表中供以后分析。
SQL Profiler 的使用方法
- 首先是打开 SQL Profiler,如下图:
- 打开工具选择对应的服务器,如下图:
- 点击确定之后将标签页切换到事件选择页签,勾选如下选项(有的服务器默认会显示所有列,这里选择下图中的三个即可),如下图:
- 列筛选器过滤要跟踪的事件。例如 要跟踪所有的 select 语句 如图 列筛选器选择 TextData 类似于
select%
,%
是通配符,表示以 select 开头的语句。delete update 等也是同理。
列筛选器的含义依次为:
- ApplicationName - 创建 SQL Server 连接的客户端应用程序的名称。此列由该应用程序传递的值填充,而不是由所显示的程序名填充的;
- BinaryData - 依赖于跟踪中捕获的事件类的二进制值。
- ClientProcessID - 调用 SQL Server 的应用程序的进程 ID。
- CPU - 事件使用的 CPU 时间(毫秒)。
- Duration - 事件占用的时间。尽管服务器以微秒计算持续时间,SQL Server Profiler 却能够以毫秒为单位显示该值,具体情况取决于 工具>选项 对话框中的设置
- EndTime - 事件结束的时间。对指示事件开始的事件类(例如 SQL:BatchStarting 或 SP:Starting)将不填充此列。
- LoginName - 用户的登录名(SQL Server 安全登录或 Windows 登录凭据,格式为“域\用户名”)
- NTusername Windows - 用户名。
- Reads - 由服务器代表事件读取逻辑磁盘的次数。
- TextDate - 依赖于跟踪中捕获的事件类的文本值;
- SPID SQL Server - 为客户端的相关进程分配的服务器进程 ID。
- StratTime - 事件(如果可用)的启动时间。
- Writes - 由服务器代表事件写入物理磁盘的次数。
- DataBaseName - 跟踪的数据库名称。
- HostName - 跟踪的主机名称。
设置完成后,单击 运行 按钮就可以,当然如果有兴趣的话也可以对列进行重新排列和筛选,只要单击下面相应的按钮根据提示操作就要可以了。
注意:跟踪页面 单击运行后的页面,常用的就那些按钮 开始、暂停、停止、清楚跟踪记录等 。鼠标悬浮就会有中文提示。可以同时启动多个跟踪,同时跟踪不同的数据库和表,还可以配合 数据库引擎优化顾问 一起使用,可以分析出来你的 Sql 语句性能,而且还会告诉你怎么修改会更好。