首页 理论教育数据库性能调优:特定步骤

数据库性能调优:特定步骤

【摘要】:系统调优大致分为硬件系统结构和 O/S、DBMS、应用程序等三个层次,各层次之间具有密切的关联性。以下原则性的DBMS性能调优步骤可以达到最佳效果。虽然该内容基于若干Oracle DBMS,但其实并不需要考虑具体的DBMS制造商。DBMS的内存分配量要在不引起分页和交换的范围内调整。在 DBMS性能调优的具体对象中,instance、storage management、数据 I/O、SQL access等是最重要的部分。对于Oracle DBMS,可通过v $sysstat、v $sqlarea等性能视图,收集用于性能评价的DB分析信息。

相比停留在单纯构建和运行数据库系统本身的基础水平,目前已进入到将提高系统性能作为操作目标的时代。在复合的硬件系统构成、多种业务类型并存、管理对象数据大容量化的运行环境下,达到适合的性能并不简单,并非每个人都可以做到。

虽然从数据库的初始构建和设计阶段就要开始考虑性能方面并非易事,但是未有效构建的系统的性能在运行阶段很难加以改善是不争的事实。而且要谨记,构建数据库系统时,从设计阶段到物理结构、数据库、应用程序等,在每个部分均考虑到性能方面的策略问题是达到预期性能的唯一途径。电算系统中性能调优方面的访问需要的是着眼于整个系统的视角和经验性知识。如果以局部视角和知识进行调优,可能会对整体系统的性能造成不良影响。系统调优大致分为硬件系统结构和 O/S、DBMS、应用程序等三个层次,各层次之间具有密切的关联性。因此在执行性能调优时,不能偏重某一层次,要充分考虑各层次之间的相互关联性才能做到恰当的调优。以下原则性的DBMS性能调优步骤可以达到最佳效果。虽然该内容基于若干Oracle DBMS,但其实并不需要考虑具体的DBMS制造商。

1)第 1阶段:业务规则调优

为保证最佳性能,必须适当地调整业务规则,以整个系统的高水平分析和设计为基础。

实际上,DBA面临的性能问题是由于实际设计和具体操作或是不适当的业务规则引起的。因此,业务规则要以了解众多并发用户存在的环境为基础,考虑现实的期待值。

2)第 2阶段:数据设计调优

在数据设计阶段,需要准确了解要实现的应用程序所需的数据是什么。此外,还要仔细了解哪种关系重要、哪些属性存在。在此基础上,为达到最佳性能,需要数据结构化处理。还需要进行范式和非范式处理来改善性能,并且需要最大限度地避免数据争用的构成。

(1) partitioning in HA (instance、application、data、time等 )。

(2)使用 data partition & local、global index。

3)第3阶段:应用程序设计调优

要按业务实现目标有效分配各个进程,即使是访问同一系统的环境下,也可根据实现目标进行不同设计。

4)第 4阶段:数据库的逻辑结构调优

应用程序和系统设计完成后,此阶段的核心是为保证数据访问性能,调优索引设计。

5)第 5阶段:数据库访问方式的调优

为保证最佳的系统性能,更好地利用SQL的优点和应用程序处理,应验证所实现数据库的功能是否充分应用:array processing; optimizer; PL/SQL; row-level lock manager。

6)第 6阶段:访问路径调优(www.chuimin.cn)

为有效地进行数据访 问,考虑使用 B* 树 indexes、bitmap indexes、clusters、hash clusters等。此外,为在应用程序测试阶段达到所期望的响应速度,不仅要考虑增减索引,还要考虑改善设计。

7)第 7阶段:内存运行调优

通过有效分配内存资源、改善缓存性能并减少SQL语句的解析操作,以便对性能改善产生积极的效果。DBMS的内存分配量要在不引起分页和交换的范围内调整。包括:dictionary cache; library cache; context areas (MTS ) ; data buffer cache; log buffer;sequence caches; sort areas; hash areas。

8)第8阶段:物理结构和 I/O调优

磁盘I/O的性能是降低应用程序性能的主要原因,因此要按以下步骤调优I/O和物理结构:

(1)分散数据到磁盘以减少 I/O争用;

(2)用于最佳访问的数据块运行(freelists、pctfree、pctused) ;

(3)防止引发表的活性区段(有效管理NEXT option) ;

(4) raw device使用研究 。

9)第 9阶段:资源争用调优

在多数用户同时访问相同资源所需运行环境下,虽然不可避免地会引发资源争用,但要不断努力减少 以下争用形态:block contention; shared pool contention; lock contention; pinging(OPS&RAC environment) ; latch contention。

10)第 10阶段:硬件系统特定部分调优

要寻找正在使用中的系统平台特定部分的调优方案,包括:UNIX buffer cache大小;LVM (logical volume manager) ; memory (process)。

在 DBMS性能调优的具体对象中,instance、storage management、数据 I/O、SQL access等是最重要的部分。此外,在物理硬件系统的结构和数据库构成、应用程序等所有部分中,分区的好坏程度将影响达成预期性能的程度。

所有部分中,性能调优的重点是如何减少因同一时段发生的大部分事务而引发的资源争用负载。对于Oracle DBMS,可通过v $sysstat、v $sqlarea等性能视图,收集用于性能评价的DB分析信息。