设为首页 收藏本站
查看: 926|回复: 0

[经验分享] SQL Server Profiler的原理与相关概念

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-2-18 11:25:38 | 显示全部楼层 |阅读模式

SQL Server Profiler的原理与相关概念

SQL Profiler掌握的的好处:

1.可以监视SQL Server内部发生的各种活动:例如发生在数据库引擎中的活动,发生在Analysis Services以及Integration Services中的活动。

2.监控并且确认某些查询,事务相关的性能问题等。

3.可以对执行计划进行分析。

4.可以监视并且确认SQL Server内部的发生的一些错误和警告。

5.可以捕获数据库发生的数据,并且还可以对数据库的压力进行重放。

6.可以对数据库中用户的活动进行审计跟踪。

7.可以通过多种方式对数据进行分析与跟踪。

8.可以将跟踪的数据与系统的性能计数器关联起来,从而更加全面的检查发生的问题。

9.可以将跟踪的数据以DTA来进行分析

10.还可以对SQL Profiler进行编程,可以不使用它的GUI工具。

说了这么多,似乎已经把SQL Profiler说的天花乱坠了!其实SQL Profiler也不是万能的,也只是在SQL Server诊断与分析中常常使用的一种工具而已,至于决定到底是否在使用它,还是取决于DBA或者技术人员本身,通过本系列的学习,相信大家会有一个比较清楚的认识。

SQL Server Profiler的工作原理:

其实SQL Server Profiler这个工具是SQL Trace的一个GUI的版本,而SQL Trace是一组脚本,自SQL Server 2000就已经有了的,这一组脚本捕获和跟踪SQL Server内部发生一些事件,并且将跟踪的数据保存以便后续使用。

从本质上说,SQL Trace就是一个非常简单的工具,它的作用就是捕获客户端应用与SQL Server之前的通信的信息。它扮演中一个非常特殊的网络嗅探器的功能,用来捕获与SQL Server相关的网络活动,同时也允许我们查看客户端应用的请求触发了SQL Server的哪些事件。

另外,与我们熟悉的网络嗅探器不同的是:SQL Trace只是捕获发生在SQL Server内的相关的事件和活动,而不会获取网络上面传输的数据。

为了使得大家对SQL Trace有一个更加清楚的认识,我们来看看下面的一个图

20140212163839031.jpg


1.SQL Server事件是指由SQL Server本身内部触发的活动,或者由客户端与SQL Server进行连接时在SQL Server内部触发的活动。事件包含很多不同的种类,我们将会在后续文章中详解介绍。

2.因为事件发生在SQL Server的内部,SQL Trace的任务就是根据Filter来捕获自己感兴趣的事件。

3.一旦事件被SQL Trace捕获,那么发生的事件与相关的事件信息就会被保存在内存的队列中。

4.SMO(ServerManagement Objects),是可以直接的访问SQL Server的对象模型。其实,SQL Trace对于我们而言,就可以将之看成是一个黑盒,我们能做的就是通过一些方式和工具去与这个黑盒交互,SQL Profiler和系统的存储过程就是这样的工具。

SQL Profiler中常用的术语概念:

事件(Events)

数据列(Data Columns)

过滤器(Filters)

跟踪(Trace)

事件

相信熟悉微软技术的朋友对“事件”这个概念已经不陌生了,简而言之就是发生的活动,例如一个存储过程的执行,就是一个活动,也是发生了一个事件。SQL Profiler允许我们捕获大约170多种不同的与SQL Server有关的事件。另外,在SQL Profiler中,使用Event Category这个概念,对不同的事件进行了一个大致的分类,使得为我们的监控更加的方便,例如所有与存储过程相关的事件都被划分在一个分类中。

数据列

这个概念理解起来非常简单,简而言之就是描述事件发生的一些信息。这个概念和我们在.NET编程中的事件信息的概念是一样的。

过滤器

顾名思义,过滤器主要是SQL Profiler用来对发生的事件进行过滤的,只捕获感兴趣的事件。过滤器在使用SQL Profiler中非常有用,因为它可以决定我们收集到的数据的正确性,更加对收集到的数据的量产生很多的影响。(这个地方,其实是特别有用的,可以对自己所需的信息进行筛选,从而过滤掉很多的无用的信息,进而还可以在监控时的性能进行优化。)

跟踪

请注意:这里的跟踪,不是个动词,而是一个名词!每一个跟踪包含了发生的事件以及相关的数据列信息,并且我们常常将这些信息保存在物理的文件中。其实,我们常常所说的跟踪,就是一个保存SQL Profiler数据的跟踪文件。跟踪文件可以以很多的方式保存:保存在内存中,以特定的格式导出,保存在数据库中,保存为XML文件等。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-15075-1-1.html 上篇帖子: SQL server 数据库 如何把一张表复制到另一个数据库表中 下篇帖子: sql:无法解决 equal to 操作中 "C hinese_PRC_CI_AS
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表