利用SQL Profiler监视数据库运行
软件世界
前言:如果客户老是向你抱怨SQL Server运行太慢,占用CPU太多,老是死锁,你一定很想知道SQL Server到底发生了什么事。这时,你可以使用SQL Profiler工具来查找原因。
一、为什么要用SQL Profiler
SQL Profiler是SQL Server(7.0版本以上)提供的一个图形化的管理工具,用于监督、记录和检查SQL Server 数据库的使用情况。对管理员来说,它是一个可以连续实时地捕获用户活动情况的“间谍”。有了它,你就能更深入地了解SQL Server的运行状态,找到现在运行的数据库存在的问题,从而为准确地解决问题打好基础。
二、创建跟踪
选择“开始→程序→Microsoft SQL Server→Profiler” 启动SQL Profiler,也可以在企业管理器中选择“Tools→SQL Profiler”来启动它。
通过设置跟踪选项,可以只记录我们需要的信息。选择新建追踪,登录要跟踪的服务器,就会看到跟踪属性对话框(图1)。
General(一般)页:
在这里设置跟踪的基本信息,比如名称,使用的模板。同时可以设定是否把跟踪的记录保存到文件或表中,日后可以进一步分析。
Events(事件)页(图2):
这里列出了所有可跟踪的事件,我们只选择需要的事件,否则不仅影响服务器的运行,而且大量无用的信息对日后进行分析也会造成不便。当然,如果选错了事件,那以后的操作都是徒劳的。我们选择某个事件,底部就会显示该事件的含义,帮助我们筛选。
Data Columns(数据列)页(图3):
选择记录事件的数据列,通过向上向下调整数据列的前后顺序,可以将你感兴趣的列放在靠前的位置。
Filter(筛选器)页(图4):
设定在哪些条件下发生的情况才需要记录。在这儿只介绍几个比较重要的选项:
1. DatabaseName 指定跟踪的数据库名称。
2. DatabaseID指定跟踪的数据库ID号。注意,在SQL7.0中没有DatabaseName,只能指定DatabaseID,你可以在master数据库中运行“select dbid from sysdatabases where name='数据库名称'”来查找。
3.Duration 指定事件运行的条件,以毫秒为单位。这个选项最利于跟踪那些超时的SQL语句。
三、查看分析跟踪
设置完成后,就可以点“Run”按钮开始跟踪(图5)。
在SQL Profiler中可以查看跟踪到的事件数据,每一行数据代表一个事件。SQL Profiler强大之处在于不管你的前台是如何操作,它都会转换为T-SQL语句。这样你就可以观察某个程序如何使用SQL Server的,并且可以结合其他工具,比如查询分析器,对具体的语句进行分析。
本文简单介绍了SQL Profiler的使用,希望能够帮助你更加有效的利用SQL Server。




