sql server profiler的使用
打开系统主菜单--sqlserver几---性能工具--->>sql server profiler;笨样儿,找到没?哥等你会儿,给你上张打开他后的图,让你看看。。
然后文件--新建跟踪--显示跟踪属性窗口
首先那个select%是个筛选监测的TextData。那个%是个通配符,他的意思就是筛选select开口的语句。当然这你自己可以随便定义,如update%,delete%....。
把那个排除不包含值的行也给带上,然后确定,运行。然后在数据库中运行一句select。你会发现他检测到啦。
每列以此向右,从EventClass开始,我给你讲讲都是什么。
事件分类,申请了语句,应用程序名称,操作系统用户,数据库用户,cpu占用率,读数据库次数,写数据库次说,执行脚本用时,应用程序进程号,开始时间,结束时间等。
事件选择,你就把鼠标放上去,他下面有中文的注释。自己好好看看,然后根据你自己的需要把事件勾选上来。
然后文件-->>另存为,可以把这些监测到的数据保存为文件,或数据表。
分析:
1.查找持续时间最长的查询
(2)打开SQL Server Profiler,进入“文件”→“新建跟踪”。这将打开“连接到服务器”对话框。在这里选择你要连接的SQL Server实例的名称以及认证方式(Windows或SQL),当指定好这些值后,点击“连接”按钮。
(3) 打开“跟踪属性”对话框。在“跟踪名称”输入框中,输入“Duration > 5秒的查询”。SQL Server Profiler提供一组各种各样的跟踪模块。这些模板包含预定义的事件选择,它允许你开始监视SQL Server实例活动的特定类型。在这个技巧中,从“使用模板”框中选择TSQL_Duration模板:
4) 下一步,在“跟踪属性”对话框中点击“事件选择”标签。这里载入预先存储的TSQL_DURATION模块的跟踪事件。现在将监视两个不同的事件,RPC:Completed和SQL:BatchCompleted。这个意思是SQL Server Profiler将返回在SQL Server实例中完成的远程过程调用或T-SQL语句的行。这个窗口也显示了跟踪数据要返回的列,在这个例子中包括了Duration(已完成的查询的持续时间)、TextData(捕捉实际的T-SQL)、SPID(调用者的服务器进程ID)以及BinaryData(根据事件返回不同的数据)。
(5) 为了查看可以添加到跟踪的其他事件和列,点击显示“所有事件”和“显示所有列”复选框。这增加了可以扩展或减少显示事件的事件种类。从而可以复选或非复选关联到独立事件的可用的列:
(6) 下一步,你希望去配置这个跟踪,只显示查询的持续时间超过5秒的事件。为了做到它,在事件选择窗口中点击“列筛选器”按钮。这会打开“编辑筛选器”对话框。为了筛选查询持续时间,在左边的列表框点击Duration列。在右边的列表框,扩展出“大于等于”筛选器并输入5001(它的时间单位是毫秒)。完成后,点击“确定”。
(7) 为了启动跟踪,在“跟踪属性”对话框中点击“运行”。
(8) 在SQL Server Management Studio的查询编辑器中,执行如下查询:
(9) 切换到SQL Server Profiler,可以看到查询的确被跟踪捕捉到了。为了停止跟踪,打开“文件”菜单并选择“停止跟踪”。通过高亮SQL:BatchCompleted行,可以在下面的窗格中看到完整的SELECT语句。持续时间显示了查询花了10.3秒,并且是由服务器进程ID 53发生的。
2.最占用系统资源的查询
就是占用cpu时间,跟读写IO的次数。建议事件包含Connect、Disconnect、ExistingConnection、SQL:BatchCompleted、RPC:completed,列包含writes,reads,cpu。
3.检测死锁
在访问量,并发量都很大的数据库中,如果设计稍不合理,就有可能造成死锁,给系统性能带来影响。事件包含:RPC:Starting、SQL:BatchStarting、Lock:DeadLock(死锁事件)、Lock:DeadLockChaining(死锁的事件序列)。