数据库管理员制胜之宝
数据库管理员制胜之宝,数据库管理员制胜之宝
遗憾的是,对像SQL Server这样的数据库进行调整和性能调节并不是一件容易的事。SQL Server带有几种监控和调试工具,功能强大,但精通掌握十分困难。
图1 Coefficient类似Profiler
然而,现在有了Coefficient。它是Intrinsic Design公司发布的新产品,对初学者和有经验的数据库管理员都适用。Coefficient可以帮助加强SQL Server的性能调节,提高操作员监控SQL Server内部工作的能力。最有用处的是,它能把监控数据以几乎所有的数据库管理员都可以理解的格式呈列出来。
Coefficient并不是Performance Monitor, Query Analyzer或者Profiler的完全替换品。Coefficient更像加强的SQL Server Profiler。它的工作方式十分类似于Profiler,但比Profiler更为容易使用和理解。(如图1)
Coefficient运行过程
Coefficient可以安装在SQL Server服务器上,也可以安装在任何通过网络联结在SQL Servers上的计算机上。安装十分简单,安装完毕就可立即进行监控工作了。一般来说,按下列步骤进行:
首先在主页面上增加一个SQL Server,就像使用Enterprise Manager注册一个SQL Server一样。
在列表上选择一个想要分析的数据库,然后建立一个跟踪,即通常所说的Trace,有点像用SQL Server Profiler建立的跟踪文件,但是比它更容易操作:不必经过多少如Events、Data Columns和Filters之类的复杂工作。替而代之的是一种逐级的向导,只需要设置几个简单的参数即可完成,包括指定Trace表名(Coefficient用来存储跟踪数据的SQL Server表)、设置Trace运行时间(试用版最多只能运行20分钟)、设置分析是否在Trace结束之后立即执行,等等。
如果选择在Trace完成之后立即运行分析(Analysis),还需要指定分析文件存储的地方和运行分析的类型,这些常常是通过选择模板完成的,也就是说,模板(Template)是用来指定想要执行的分析的具体类型。
完成向导,Trace就开始了,一直运行到指定的时间跑完为止(如图2)。在这期间,监控所得到的数据保存在SQL Server中指定的Trace表中。随后可以立即进行Analysis,用户也可以在任何时候对Trace表中的监控数据进行多种分析。
分析的结果保存为很多HTML文件,用户可以方便地打开并点击查看各项内容。更重要的是,分析结果能方便地发布在内部网的网络服务器上,供多个用户使用浏览器进行查阅。
Analysis是Coefficient的关键
在介绍分析结果之前,让我们先了解模板(Template)和分析(Analysis)类型。当用Coefficient执行分析时,可以选择一个已预定义好的模板,也可以建立自己的模板。实际上,模板就是一个很多分析类型的列表,建立模板就是选择需要进行的分析对象。通过这个列表,Coefficient处理从数据库中收集的跟踪数据。Coefficient总共可以分析多达49种不同的指标,这些指标都和SQL Server内部工作有关。主要有以下典型性能分析:
客户中断请求和中断连接信息。通过attention events常常可以查出在客户端和服务器之间的通讯问题。
SQL Server和NT用户连接信息。例如哪个用户连接了多长时间。
死锁次数及导致这些死锁的信息。
SQL Server错误和警告信息。
表统计的遗漏信息。可以帮助确定统计是否存在任何遗漏,这些信息可以用来优化查询,提高执行程序代码的速度。
图3 选择模板和分析项目
SQL语句是否执行和SQL Prepare/Execute模型。运用这些模型常常可以加快重复执行SQL代码的速度。
执行计划重复使用的频率。
存储过程再编译的频率。
存储程序和SQL语句的调用情况。包括持续时间、读和写的次数,等等。
SQL Server超时次数。
一个Coefficient实例
假设要分析数据库中的存储过程的性能,并确定存储过程的最大共同点。当调整一个数据库时,最好的解决办法之一就是确定哪个存储过程运行最频繁,而后对这些存储过程进行优化。即使只使一个存储过程减少了三分之一的运行时间,如果一天需要运行10,000次这个存储过程,那也是一个可喜的成绩。
首先建立一个Trace,选择SPSQL模板进行分析。SPSQL模板可以提供很多数据,但是我们仅仅对哪个存储过程运行最频繁感兴趣,所以只需选择Stored Procedure Call Frequency report(SPSQL模板的一个部分)。
依照上述步骤进行即可生成监控报告,报告里既有表格也有图例,在表格里以存储过程运行的频率大小排序,图例就显示在表的上面(如图3)。