Sql Server profiler 分析器的理解
Sql Server profiler 分析器的理解
Sql Server profiler 分析器的理解说道SQL Server Profiler,相关很多朋友们都已经不陌生了,可以说SQL Profiler是一个非常强大的工具,使用它,我们可以捕获和分析数据库中发生的相关的事件,例如,存储过程的执行等。而捕获的信息可以为我们在性能诊断中提供依据。
通常,通过 SQL Server Profiler 访问 SQL 跟踪。还可以使用 Transact-SQL 系统存储过程来访问 SQL 跟踪。SQL Server Profiler 可以使用 SQL 跟踪的全部事件捕获功能并添加跟踪表信息、将跟踪定义保存为模板、提取查询计划和死锁事件作为单独的 XML 文件以及重播跟踪结果以进行诊断和优化的能力。
一、我们通常可以利用SQL Server Profiler完成以下事情:
1、可以监视SQL Server内部发生的各种活动:例如发生在数据库引擎中的活动,发生在Analysis Services以及Integration Services中的活动。
2、监控并且确认某些查询,事务相关的性能问题等。
3、可以对执行计划进行分析。
4、可以监视并且确认SQL Server内部的发生的一些错误和警告。
5、可以捕获数据库发生的数据,并且还可以对数据库的压力进行重放。
6、可以对数据库中用户的活动进行审计跟踪。
7、可以通过多种方式对数据进行分析与跟踪。
8、可以将跟踪的数据与系统的性能计数器关联起来,从而更加全面的检查发生的问题。
9、可以将跟踪的数据以DTA来进行分析
10、还可以对SQL Profiler进行编程,可以不使用它的GUI工具。
二、如何创建跟踪
1、在“文件”菜单上,单击“新建跟踪”,并连接到 SQL Server 实例。 此时,将显示“跟踪属性”对话框。
2、在“跟踪名称”框中,键入跟踪的名称。
3、在“使用模板”列表中,为此跟踪选择一个跟踪模板;如果不想使用模板,请选择“空白”。
4、若要保存跟踪结果,请执行下列操作之一:
单击“保存到文件”将跟踪捕获到文件中。指定“设置最大文件大小”的值。默认值为 5 MB。或者,选择“启用文件滚动更新”,以便当文件大小达到最大值时自动创建新文件。也可以选择“服务器处理跟踪数据”,由正在运行跟踪的服务而不是客户端应用程序来处理跟踪数据。在服务器处理跟踪数据时,即使是在压力较大的情况下也不会跳过事件,但是服务器性能可能会受到影响。
单击“保存到表”将跟踪捕获到数据库表中。
5、根据需要,可以单击“设置最大行数”,并指定值。
6、根据需要,可以选中“启用跟踪停止时间”复选框,再指定停止日期和时间。
7、若要添加或删除事件、数据列或筛选器,请单击“事件选择”选项卡。
8、单击“运行”启动跟踪功能
三、SQL Profiler中常用的术语概念
1、事件(Events)
相信熟悉微软技术的朋友对“事件”这个概念已经不陌生了,简而言之就是发生的活动,例如一个存储过程的执行,就是一个活动,也是发生了一个事件。SQL Profiler允许我们捕获大约170多种不同的与SQL Server有关的时间。
另外,在SQL Profiler中,使用Event Category这个概念,对不同的事件进行了一个大致的分类,使得为我们的监控更加的方便,例如所有与存储过程相关的事件都被划分在一个分类中。
2、数据列(Data Columns)
这个概念理解起来非常简单,简而言之就是描述事件发生的一些信息。这个概念和我们在.NET编程中的事件信息的概念是一样的。如图1-2所示,可以看到事件发生的时候,包含了一些实事件信息,即数据列。
上图中列出了很多事件的数据列,例如,对于RPC:Completed事件而言,包含了TextData,ApplicationName等。同时,还可以看出 ,不是所有事件都有相同的数据列。
3、过滤器(Filters)
顾名思义,过滤器主要是SQL Profiler用来对发生的事件进行过滤的,只捕获感兴趣的事件。可以根据很多的来创建灵活的过滤,如图1-3所示:
过滤器在使用SQL Profiler中非常有用,因为它可以决定我们收集到的数据的正确性,更加对收集到的数据的量产生很多的影响。
4、跟踪(Trace)
请注意:这里的跟踪,不是个动词,而是一个名词!每一个跟踪包含了发生的事件以及相关的数据列信息,并且我们常常将这些信息保存在物理的文件中。其实,我们常常所说的跟踪,就是一个保存SQL Profiler数据的跟踪文件。
跟踪文件可以以很多的方式保存:保存在内存中,以特定的格式导出,保存在数据库中,保存为XML文件等。如图1-4所示,就现在SQL Profiler中直接显示了跟踪信息,即跟踪信息保存在内存中
热门推荐
- 存储过程中使用事务Transaction
- js判断变量是否为空
- python用于机器人(python机器人运动范围问题的解答)
- thinkphp返回json(thinkphp5框架实现数据库读取的数据转换成json格式示例)
- python3和python2 兼容(Python2和Python3的共存和切换使用)
- python什么是深拷贝什么是浅拷贝(Python深拷贝与浅拷贝用法实例分析)
- MYSQL中常用的强制性操作
- 用mysql编写test数据库(MySQL制作具有千万条测试数据的测试库的方法)
- mysql5.5.36版本介绍(WDCP控制面板升级mysql为5.7.11的方法)
- html5新的表单元素新的特性(HTML5表单验证特性知识点小结)