一、介绍
SQL Server Profiler,它可以对sql运行情况进行跟踪,从而找出问题所在。
二、使用方法
可以从开始菜单打开
也可以从数据库界面打开;
新建跟踪
文件->新建跟踪
连接服务器,输入地址、账户名、密码
设置跟踪名称(常规选项)
名称可以随意取,如果使用多个跟踪时,需要唯一名字。
选择要跟踪的事件(事件跟踪选项)
设置完成后,单击“运行”按钮;
列选择器的含义:
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: 由服务器代表事件写入物理磁盘的次数。
跟踪页面
单击运行后的页面,常用的就那些按钮 开始、暂停、停止、清楚跟踪记录等 。鼠标悬浮就会有中文提示。可以同时启动多个跟踪,同时跟踪不同的数据库和表,还可以配合 SQL的数据库引擎优化顾问 一起使用,可以分析出Sql语句性能,而且还会告诉你怎么修改会更好。
三、SQL Server Profiler的作用
对生产环境进行监视,以优化性能。
了解哪些存储过程由于执行速度太慢而影响了性能。
逐步分析有问题的语句并找到问题的原因。
捕获导致某个问题的一系列 Transact-SQL 语句。 然后用所保存的跟踪在某台测试服务器上复制此问题,接着在该测试服务器上诊断问题。
使性能计数器与诊断问题关联。
SQL Server Profiler 还支持对 SQL Server 实例上执行的操作进行审核。 审核将记录与安全相关的操作,供安全管理员以后复查。
========
附注:
这个我曾用过,辅助查找程序错误;获取到程序传递给数据库的SQL语句,看下是什么地方写错,有时方便查找程序错误;新建一个跟踪,然后在程序里面让sql执行,然后快速转到Profiler里面,马上停止跟踪;之后可以把此次跟踪获取到的sql语句保存为XML文件,在里面可以找到自己程序发出的;有的系统上动作一定要快,自己要抓取的SQL执行了以后马上转到Profiler里面停止跟踪,如果多延迟几分钟,会多抓到大量SQL,不方便找自己要的;