Oracle性能优化概述

我们经常会提到如何提高Oracle性能呢?但是这个提高是在什么样的场景下,什么样的时间点上进行优化比较好呢?本文大概对Oracle性能的优化进行一个概述。

Oracle性能优化的场景

我们从数据库性能优化的场景来区分,可以将性能优化分为如下3种形式:

1、从未达到性能要求的数据库优化。通过字面上的意思是这个数据库性能应对当前业务绰绰有余的情况进行性能优化,故

此类故障一般是出现在压力测试或者业务刚刚上线时,这时候可能需要通过修改应用框架或者大规模的优化SQL语句进行改进。此类优化的耗时最长,难度也最大。

2、量变引起质变的数据库优化。该类故障通常是数据库进入生产环境,随着业务的并发量、数据量的增加引起的,优化难度一般,但是代价比较高,一般通过增加硬件性能或存储来解决该类性能问题。

3、突发性数据库性能故障优化。该类故障优化难度最低,但是时间是最急迫的,需要数据库管理员能够快速定位问题,提出解决方案。


Oracle性能优化的时间点

假如把Oracle性能优化的时间点进行划分,又可以分为事前优化和事后优化之分。

事前优化

事前优化,指的是项目上线前的优化。在事前优化过程中,系统设计、开发、产品优化、平台优化的全过程都很重要。实践经验表明,事前优化对系统的平稳运行有着根本性的影响,而且优化代价也最低。在这个阶段进行优化非常考验开发者的技术能力和开发经验。

事后优化

事后优化,指的是业务系统上线后的优化。由于事后优化受到宕机时间、事态的严重性,经常是被迫进行优化,时间会比较紧迫。往往只是紧急的应对了性能下降的问题,大部分情况下是治标不治本的。假如,事后如果爆发出大规模的性能问题,通常都会是灾难性的,任何容灾在这时往往起不了作用。

因此,我们一定要做好系统的事前优化,千万别将数据库的优化全部寄托于系统的参数优化和硬件升级上。


Oracle性能优化的目标

Oracle性能优化并没有统一的执行标准或者参考步骤,但是我们进行数据库性能优化时,有一些大概的优化目标,比如:

1、增大数据库吞吐量。如通过数据库优化增加每秒执行的事务数。

2、高效利用服务器硬件资源。如开启并行充分利用CPU和存储I/O资源加快执行速度。