19.2.1 了解SQL Server Profiler
SQL Server Profiler 是图形化实时监视工具,能帮助系统管理员监视数据库和服务器的行为, 比如死锁的数量,致命的错误,跟踪Transact-SQL 语句和存储过程。可以把这些监视数据存入表或文件中,并在以后某一时间重新显示这些事件来一步一步地进行分析。
通常我们使用SQL Server Profiler 仅监视某些插入事件,这些事件主要有: 登录连接的失败、成功或断开连接; DELETE、 INSERT、 UPDATE 命令; 远程存储过程调用(RPC) 的状态; 存储过程的开始或结束,以及存储过程中的每一条语句; 写入SQL Server 错误日志的错误; 打开的游标; 向数据库对象添加锁或释放锁。 我们之所以不监视过多的事件,原因在于对事件进行监视往往增加系统的负担,并且使跟踪文件很快增长成大容量文件,从而引起不必要的麻烦。
19.2.2 创建跟踪
在SQL Server 中可以使用SQL Server Profiler 创建跟踪,也可以使用跟踪创建向导或是扩展存储过程。在这里我们将介绍如何使用SQL Server Profiler 来创建跟踪。
(1) 启动SQL Server Profiler (与启动SQL Server Enterprise Manager 一样),从File 的下拉菜单中选择New, 再选择Trace 选项,此时打开Trace Properties 对话框,如图19-2 所示。
在该对话框中定义跟踪的名称、类型、运行跟踪的SQL Server 以及跟踪输出数据的存储方式。其中各选项的含义为: Shared: 表示所有被允许登录到运行SQL Server Profiler 服务器的用户都可以使用该跟踪; Private: 表示只有当前创建者可以使用该跟踪; Capture to file: 表示将跟踪结果存储到文件中,可减少进行跟踪时的内存开销; Capture to table: 表示将跟踪结果存储到表中,这极易引起较大的额外系统开销。
(2) 选中Events 标签页,如图19-3 所示该对话框用来确定将跟踪哪些事件。在 Available Events 下的窗口中选择要跟踪的事件,底部的方框内便显示出该事件的含义,单击Add ,增加到Selected Events 事件中;
(3) 选中Data Columns 标签页,如图19-4 所示。在该对话框可以选择跟踪事件哪些数据列,通常选择那些我们比较关心的列。
(4) 选中Filters 标签页,如图19-5 所示。
(5) 单击“确定”按钮完成跟踪创建。
19.2.3 查看、分析跟踪
使用SQL Server Profiler 可以查看跟踪中的事件数据,在跟踪中的每一行代表一个事件,这些事件数据是由跟踪的属性决定的。可以把SQL Server 数据拷贝到其它的应用程序中,如SQL Server Query Analyzer 或Index Tuning Wizard 然后利用它们进行数据分析,但通常我们使用SQL Server Profiler 来进行跟踪分析。
利用SQL Server Profiler 既可以打开扩展名为.trc 的跟踪文件,也可以打开扩展名为.log 的日志文件,以及一般的SQL 脚本文件
因为跟踪信息通常保存在文件或表中,所以通过打开表或文件就可以查看、分析跟踪。
打开跟踪的步骤为:
从File 菜单中选择Open, 再选择Trace Files, 弹出如图19-6 所示的对话框。