·天新网首页·加入收藏·设为首页·网站导航
数码笔记本手机摄像机相机MP3MP4GPS
硬件台式机网络服务器主板CPU硬盘显卡
办公投影打印传真
家电电视影院空调
游戏网游单机动漫
汽车新车购车试驾
下载驱动源码
学院开发设计
考试公务员高考考研
业界互联网通信探索
SQL SERVER 2012里的扩展事件初尝试(下)
http://www.21tx.com 2014年01月17日 cnblogs 桦仔

脚本文件下载:http://files.cnblogs.com/lyhabc/instnwnd.rar

我们打开上篇创建的blogtest扩展事件会话的属性

SQL SERVER 2012里的扩展事件初尝试(下)

检查一下sql_statement_starting事件和sql_statement_completed事件的谓词是不是database_name=’Northwind’

SQL SERVER 2012里的扩展事件初尝试(下)

SQL SERVER 2012里的扩展事件初尝试(下)


运行workload

大家可以看到instnwnd.sql这个文件是比较大的,执行的时候会产生一些workload

SQL SERVER 2012里的扩展事件初尝试(下)

我们启动blogtest会话

SQL SERVER 2012里的扩展事件初尝试(下)

然后执行instnwnd.sql脚本

SQL SERVER 2012里的扩展事件初尝试(下)

如果你的机器运行这个脚本很长时间,你可以点击工具栏的“停止数据反馈”,SSMS会停止继续显示实时数据

SQL SERVER 2012里的扩展事件初尝试(下)

实时数据窗口可能只有两个列name和timestamp,这是仅有的2个所有扩展事件共有的列

你可以选择工具栏上的选择列按钮,添加/删除需要显示的列

SQL SERVER 2012里的扩展事件初尝试(下)

SQL SERVER 2012里的扩展事件初尝试(下)

我增加了3个列database_name,duration和statement

SQL SERVER 2012里的扩展事件初尝试(下)

SQL SERVER 2012里的扩展事件初尝试(下)

我们要找到Northwind数据库里平均执行时间最长的query,首先我们可以过滤不必要的事件

上篇曾提到过谓词可以在SQL Server端避免不需要的事件被产生,我们同时也支持客户端的过滤器,这可以帮助你做各种分析

点击工具栏上的筛选器按钮,这将打开筛选器对话框

SQL SERVER 2012里的扩展事件初尝试(下)

这里我们设置两个条件name=sql_statement_completed And database_name=Northwind

SQL SERVER 2012里的扩展事件初尝试(下)

为了避免输入错误,你可以从事件列表里拷贝粘帖,你还可以右键点击某个单元格,然后选择Filter by this Value,

这将自动为你添加一个子句并And到原有条件上

设置完毕之后点击确定

过滤掉不必要的事件后我们按照statement来做分组,点击工具栏上的分组按钮

SQL SERVER 2012里的扩展事件初尝试(下)

把statement移动到右边,点击确定

SQL SERVER 2012里的扩展事件初尝试(下)

分组的目的是为了计算每个分组上duration的平均值,下面可以点击工具栏上的聚合按钮

SQL SERVER 2012里的扩展事件初尝试(下)

我们在duration上聚合类型选择AVG

SQL SERVER 2012里的扩展事件初尝试(下)

然后选择在duration(AVG)上按降序排序

SQL SERVER 2012里的扩展事件初尝试(下)

这样duration平均值最大的分组将被显示在第一行

我执行instnwnd.sql的workload里duration最大的分组是“exec master.dbo.sp_MSdbusERPriv N'serv'”

它的duration是13610微秒,这样我们就找到了平均开销最大的query

我们用单位换算器换算一下

SQL SERVER 2012里的扩展事件初尝试(下)

SQL SERVER 2012里的扩展事件初尝试(下)

SQL SERVER 2012里的扩展事件初尝试(下)

你可以通过 打开-》合并扩展事件文件-》来打开生成的xel文件

SQL SERVER 2012里的扩展事件初尝试(下)

SQL SERVER 2012里的扩展事件初尝试(下)


总结

大家一定会好奇,为什麽在创建事件会话的时候会有筛选器,在SSMS工具栏又有筛选器

SQL SERVER 2012里的扩展事件初尝试(下)

SQL SERVER 2012里的扩展事件初尝试(下)

其实扩展事件是属于SQLSERVER端的,把SQLSERVER profiler的功能搬到SQLSERVER端,当然不是简单的搬到SQLSERVER端

而SSMS的工具栏只是提供一些分析xel文件的工具,这些跟SQLSERVER profiler是差不多的

比如人家给你一个xel文件,你需要SSMS的扩展事件工具栏的工具去分析

而以前SQLSERVER profiler是属于客户端的(是一个客户端工具),profiler获取SQLSERVER端的各种事件,然后传送回客户端,

在SQLSERVER profiler界面上显示给大家

所以大家可以理解为扩展事件就是把SQLSERVER profiler的功能集成到SQLSERVER端,反正我是这样理解的,不过这个集成不是简单的集成

上一篇: 您真的理解了SQL SERVER的日志链了吗?
下一篇: SQL SERVER中Key Hash Value的作用(下)

关于我们 | 联系我们 | 加入我们 | 广告服务 | 投诉意见 | 网站导航
Copyright © 2000-2011 21tx.com, All Rights Reserved.
晨新科技 版权所有 Created by TXSite.net