数据库管理员制胜之宝

管理员|数据|数据库

数据库的调整和优化可能是一个数据库管理员的最主要也是最关键的任务之一。
遗憾的是,对像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)。

图4 分析报告

从图中,很容易就能得知哪个存储过程运行频繁。在这个例子中,存储过程名字是pcGet_SJZH_NJ,在Trace周期内被调用682次。从表格中还能得到更多关于存储过程的信息,例如平均持续时间(毫秒)、平均数量、读写次数和CPU平均占用率等等。
Coefficient的另一个特色是可以提供更多的详细信息。例如,假定我们想要了解pcGet_SJZH_NJ过程的详细信息,就可以点击名字打开另一个页面查看更多具体数据,在接下来的页面上能看到常规统计信息、持续时间统计、读取统计、记录统计、CPU统计、存储过程引用和存储过程的源代码(如图4)。另外,还可以点击“Execution plan”查看存储过程的执行计划。需要强调的是,提供的信息很详细,不仅可以查看到发送给存储过程的数据,也可以看到存储过程的参数,以及执行计划(Execution plan)。

嵌入报告中的帮助信息
Coefficient产生的数据比较多,用户可能会担心弄不清这些数据到底表示什么,怎样才能利用它们进行数据库性能调整。其实担心大可不必,在每篇分析报告的下面都有大篇幅的关于数据含义的总体说明。这些说明并不涉及产生的具体数据,但有很多关于数据库性能优化的基础知识。从某种意义上说,Coefficient本身就是一本SQL Server数据库优化手册。

Coefficient的适用人群
Coefficient对SQL Server程序员和数据库管理员都很有用。程序员可以把它用在基于SQL Server的应用软件的开发过程和测试过程中,而数据库管理员会觉得有益于调整已开发出来的应用软件,因为数据库随时间不断变化,数据库管理员们能使用Coefficient即时查看数据库内部的运行情况。最常用的是用Coefficient定义数据库各个性能方面的基准,然后比较不同周期的分析结果,借以了解数据库的运行情况。 

时间: 2024-08-30 11:08:10

数据库管理员制胜之宝的相关文章

数据库管理员制胜法宝--Coefficient

数据库的调整和优化可能是一个数据库管理员的最主要也是最关键的任务之一. 遗憾的是,对像SQL Server这样的数据库进行调整和性能调节并不是一件容易的事.SQL Server带有几种监控和调试工具,功能强大,但精通掌握十分困难. 然而,现在有了Coefficient.它是Intrinsic Design公司发布的新产品,对初学者和有经验的数据库管理员都适用.Coefficient可以帮助加强SQL Server的性能调节,提高操作员监控SQL Server内部工作的能力.最有用处的是,它能把监

数据库管理员DBA

管理员|数据|数据库 数据库管理员DBA什么是DBA 数据库管理员,英文是Database Administrator,简称DBA.这个职位对不同的人意味着不同的意义.一个小的软件开发工作室和一个分工高度明细的大公司相比,DBA的职责来得更加宽泛一些.一个公司,不管它是自己开发应用软件,还是购买第三方的应用软件,只要涉及到数据库(有多少不涉及数据库的应用软件呢?数据库是商业的灵魂和大脑啊),就需要确定是否雇佣一个或几个DBA.知道DBA这个职位有哪些要求,对于企业内部这个职位的定义或者对于那些未

ORACLE数据库管理员的职责

oracle|管理员|数据|数据库               ORACLE数据库管理员的职责 ORACLE数据库管理员应按如下方式对ORACLE数据库系统做定期监控: (1). 每天对ORACLE数据库的运行状态,日志文件,备份情况,数据 库的空间使用情况,系统资源的使用情况进行检查,发现并解决 问题. (2). 每周对数据库对象的空间扩展情况,数据的增长情况进行监控,对数据库做健康检查,对数据库对象的状态做检查. (3). 每月对表和索引等进行Analyze,检查表空间碎片,寻找数据库 性能

《DBA修炼之道:数据库管理员的第一本书》——1.7节DBMS版本迁移

1.7 DBMS版本迁移 DBA也负责管理DBMS的版本迁移,DBMS产品变更相当频繁,通常每年都会有新版本发布.保持DBMS运行和更新是一项持续的工作,将占据DBA工作的大部分时间.要降低停机几率和减少应用程序需求变化,无论采用何种方法都必须与企业的需求相符. 保持DBMS运行和最新是一项持续的工作,将占据DBA工作的大部. 多面手 数据库是现代应用程序的核心,如果DBMS失败,应用程序随之失败,进而整个业务也被迫停止:如果数据库和应用程序经常失败,整个业务也可能会失败.因此数据库管理员对现代

《DBA修炼之道:数据库管理员的第一本书》——1.2节独特的优势

1.2 独特的优势 一名优秀的DBA要享受挑战并且还得是出色的问题终结者. DBA负责设计和维护企业的数据库,他处在企业的核心位置.这样,DBA就有机会去学习各个方面的业务,以及知晓知识间的关联.他们还能研究公司的前沿技术,这使得他们的工作充满了新鲜感--但是第一次尝试找出一项新技术是怎样工作的过程中可能会有挫折感.DBA常常是独自努力研究,在遇到问题的时候不会有其他专家帮忙.因此,一名优秀的DBA要享受挑战并且还得是出色的问题终结者. 1.2.1 DBA的薪资 作为技术人员你不会找到比DBA更

《DBA修炼之道:数据库管理员的第一本书》——1.12节新技术对DBA的影响

1.12 新技术对DBA的影响 每当企业引进做生意的新方法和新技术时,DBA都要行动起来.数据是任何应用程序的心脏,随着大多数的新技术为程序开发人员所采用,它们也对数据产生了影响.实际上,数据是现代商业的生命线,数据库容纳数据,而DBA是数据库技术尤其数据库集成技术方面的专家. 接下来研究三种具体的新技术,它们在某种程度上都依赖数据库管理的有效部署:数据库耦合的应用程序逻辑.互联网电子商务开发和手持计算. 1.12.1 过程DBA:管理数据库逻辑 传统的数据库管理系统作用的域中规中矩,包括存储.

《DBA修炼之道:数据库管理员的第一本书》——第1章什么是DBA

第1章 Chapter 1什么是DBA每一家使用数据库管理系统(DBMS)管理数据的公司都需要数据库管理(DBA)组来确保能够有效地使用和部署公司的数据库.如今各种规模的企业都会至少使用一种DBMS,这使得对数据库管理员(DBA)的需求比以往任何时候都要多.然而,DBA的准则要么不容易理解,要么在推广时不能使用.对数据库管理员(DBA)的需求比以往任何时候都要多.关于数据库管理,有个经常说起的笑话,它可以帮助我们认识DBA的必要性和我们对DBA工作认知的不足.笑话大概是这样的:Acme公司的CI

《DBA修炼之道:数据库管理员的第一本书》——1.15节回顾

1.15 回顾1.?从较高的水平讨论了DBA的主要工作职责.2.?企业使用关系数据库所面临的一个最大的问题是什么?3.?数据管理员和数据库管理员之间的区别是什么?4.?哪些因素决定了所需的DBA数量来很好地支持企业的数据库环境?5.?新科技如何影响DBA的工作?6.?论证引入程序DBA后产生的技术影响.7.?数据库架构师和系统管理员之间的区别是什么?8.?最有可能负责安装DBMS新版本的职务是什么?9.?DBA必须了解的三种类型的完整性是什么?10.?一名获得认证的DBA一定是合格的DBA吗?为

《DBA修炼之道:数据库管理员的第一本书》——1.3节DBA的管理准则

1.3 DBA的管理准则数据库管理很少被视作一种管理准则."准则"一词意味着规划并按照该规划实施.当数据库管理被视作一项管理准则时,公司内部的数据处理就会有所改善了.这就是消极被动和积极主动的区别.DBA组让需求和问题淹没是家常便饭.这有多种原因,包括人员缺乏.过度承诺支持新的(甚至现有的)应用程序开发项目.缺少可遵循的流程和缺少预算等.这种情况下,数据库管理员就会变得消极被动.消极被动的DBA更像是名消防员,他集中注意力去解决所关注的最大问题.换句话说,消极被动的DBA只有当问题发生