Bootstrap

【SQL跟踪工具】SQL Profiler 跟踪器使用

 什么是SQL Profiler

SQL Server Profiler 是一个功能丰富的界面,用于创建和管理跟踪并分析和重播跟踪结果。 事件保存在一个跟踪文件中,稍后试图诊断问题时,可以对该文件进行分析或用它来重播特定的一系列步骤。

 

为什么要使用SQL Profiler

 Microsoft 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.点击确定之后将标签页切换到时间选择页签,勾选如下选项,如下图:

 

4.将显示所有列勾选,同时点击列筛选器,弹出对应的界面,如下图:

 

 

 

5.打开列筛选器的相应界面后,可以根据两种方式进行筛选过滤,分别是DataBaseID和HostName,如下图:

  • 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: 由服务器代表事件写入物理磁盘的次数。

   

6.如果是根据DataBaseID进行过滤的时候,需要到数据库中查找当前数据库的id,如下图:

7.查找到对应的数据库id之后,可以在DataBaseID过滤条件中填入对应的值,如下图:

8.也可通过主机名进行过滤

9.就我个人而言,SQL Profiler可以用做两个用途,一个是查看执行过的SQL,另外一个就是查看SQL响应时间,如下图: 

 

;