Chinaunix首页 | 论坛 | 博客
  • 博客访问: 427292
  • 博文数量: 239
  • 博客积分: 8010
  • 博客等级: 中将
  • 技术积分: 2431
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-02 21:12
文章分类
文章存档

2008年(239)

我的朋友

分类: Oracle

2008-06-18 00:35:38

数据库系统的性能调整

每个用户都希望自己的数据库系统有很好的性能,能够非常快速地响应自己的处理请求。跟踪、监控数据库系统的性能状况,采取相关措施,提高系统的处理速度,是数据库管理员的工作职责。

数据库系统在启动时,需要启动进程,获取内存资源。它对用户请求的处理,就是从磁盘读取数据到内存,在内存中完成数据的更新、查询以及汇总处理,然后将已更新数据写入磁盘。从整个处理过程来看,数据库系统使用了以下三个方面的资源:CPU时间、内存空间、I/O存取。如果系统对所有用户请求的处理,在这些资源方面不存在等待和竞争,就不会存在系统性能的问题。

用户对数据库系统性能的调整和配置,就是让系统在CPU、内存、I/O等资源的使用上,相互协调、合理运用,不会在某一个资源上面存在瓶颈。对系统的性能调整,用户既不要感到害怕,不知道该从那里入手;也不要认为系统的性能调整很简单,只需要改变几个配置参数、执行几个简单的命令,就能够大幅度地提高系统的运行性能。

数据库系统的性能调整,最关键是要定位问题的所在,也即找出影响系统性能的关键因素。由于多方面的因素会影响到系统性能,而只有对最关键因素的调整,才能起到提高系统性能的目的。

数据库系统性能调整的具体操作和实现,是有规律和方法可以遵循的。要调整性能,可以从两个方面进行:系统配置调整和应用系统调整。

 

1. 系统配置调整

 

系统配置调整就是使用各种系统工具,不间断地跟踪、分析,发现系统运行过程中的资源使用瓶颈,通过改变系统的各种配置参数以及数据的存储方式和位置,改变系统资源使用,进而达到改善系统性能的目的。

要有效地改变系统的配置,决定合理的数据存储方式和位置,用户需要深入了解数据库系统的进程管理、内存空间的结构和使用、数据的存储管理,我们将在第234章,对这些方面进行介绍。

任何计算机系统的硬件资源都是有限的,不可能无限地满足所有用户处理的需要。要评价数据库系统性能的好坏,在于它对资源的使用是否协调,是否存在资源利用上的瓶颈。用户对数据库系统配置进行调整,就是要达到这一目标。

 

2. 应用系统调整

 

应用系统调整就是从应用程序出发,采取:调整数据库中表的结构、创建新的索引或者改变现有索引结构、改变SQL语句写法等手段,达到改善系统性能的目的。

在程序设计、开发上存在缺陷的应用系统,其对数据库系统性能的影响,最终也体现在系统对CPU、内存、I/O的资源使用上。通过应用程序调整,可以降低数据库系统对资源的使用,减少资源瓶颈的发生。

我们这里所说的应用系统调整,是指应用系统在投入使用后,数据库管理员可以采取的操作手段。这要求数据库管理员对优化器的处理过程、SQL语句的编写、事务的管理和并发控制等有深入地了解。有关这些方面的内容,我们将在第56章进行介绍。

需要说明的是,对应用系统的调整,最好在系统最初设计、开发时就考虑,这样可以获得事半功倍的效果。在系统投入运行之后再调整,将存在很大的局限性。毕竟这时要改变表的结构、SQL语句的写法,不是一件容易的事情。

很多程序设计、开发人员往往只关心应用系统的功能实现,而忽略对数据库系统性能的考虑。然而,一个设计、开发得很糟糕的应用系统,希望通过运行过程中数据库管理员的全力调整和维护,使数据库系统有一个良好的性能状况是办不到的。因此,在应用系统的设计、开发过程中,有数据库管理员的参与是非常有必要的。

 

3. 性能调整步骤

 

数据库系统的性能调整,是一个反复、不断执行的过程,不能指望通过一次调整,就能够使数据库系统永久地处于良好的性能状况。

由于数据库系统建立在操作系统之上,因此对它的性能调整离不开操作系统的性能调整。操作系统的性能调整过程,类似于数据库系统的性能调整过程,这里不再赘述。

此外,我们需要明白的是,任何一台计算机系统的硬件资源都是有限的,它的事务处理能力有一个极限值。在达到或者接近这个极限值之后,任何的性能调整都无济于事。因此在这种情况下,我们不能指望通过调整增加系统性能,对系统硬件资源进行扩充是唯一可以采用的手段。

在调整数据库系统性能时,我们大体上可以采取以下的步骤(见图1-7):

 

 

1)性能数据收集

要调整性能,首先要明确数据库系统性能低下的原因。这要通过对性能数据的分析而获得,不能凭空想象。收集性能数据,是数据库系统性能调整的第一步。我们可以使用数据库系统提供的各种工具收集数据,也可以从系统的各种信息文件中获取。

2)数据分析和问题定位

性能数据的分析是一件繁琐而枯燥的工作,要从一大堆纷乱复杂的数据中,找出影响数据库系统性能的主要原因,不是一件容易的事情。这需要数据库管理员丰富的工作经验,对数据库系统的深入了解,以及对发现问题、解决问题的耐心和工作热情。

3)调整策略的制定和执行

在确定了数据库系统性能低下的缘由之后,接下来的工作就是从系统配置、应用系统调整这两个方面入手,确定调整策略和手段,然后进行具体的实施。

4)调整结果的验证

在调整操作实施之后,我们需要检验调整操作是否起作用,是否达到预期的效果。我们当然希望一次调整就能满足要求,但实际情况往往不是这样。有可能这次制定的调整措施存在偏差,调整操作没有起到作用;也有可能前面对系统性能低下的原因定位有误,调整操作反而进一步降低了系统性能。另外一种常见情况是,此次调整发生了作用,解决了前面找出的性能低下原因,但被掩盖、同样会引起性能问题的其他原因又浮现出来。例如:如果最初发现数据库系统性能低下的原因在于内存资源不足,在改变系统的内存参数配置,使数据库系统能够获得更多的内存资源后,内存资源不再是系统的性能瓶颈,但这时发现I/O处理成为制约系统性能提高的关键因素,我们就需要考虑对I/O的调整。

5)性能调整的结束和开始

如果本次调整没有达到要求,就需要重复以上的过程。即使本次调整解决了性能低下的问题,但随着时间的推移,数据库系统会再次出现性能问题,这时就需要开始另外一次的性能调整。因此数据库系统的性能调整,要反复、不断地进行,数据库管理员要在日常工作中不间断地跟踪数据库系统的性能状态。

阅读(1077) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~