关于预测方法
根据以上讨论,尤其是需求与竞争之间的关系,我们预测 Oracle 性能问题的方式有两种:
* 识别出以增长的速率消耗资源或在一段时间内表现出响应时间变慢的 SQL 语句。对于这些 SQL 语句,根据发展趋势识别出需要现在进行调整的 SQL,以避免将来出现问题。
* 识别出接近容量极限以及以后会形成瓶颈的数据库资源(锁、锁存器、I/O 通道等)。这些资源需要增加容量或提高利用率以达到计划的需求。
预测模型:为何少即是多
Oracle
竞争及其影响
当两个或更多 Oracle 会话想要使用某一资源,但该资源上某种形式的限制阻止这样做时便产生了竞争。通常这些限制与并发性相关,即有关多少会话可同时使用某一资源的限制。会话就资源的使用进行竞争,并且其中至少一个会话的处理将被延迟,而必须等待资源变为可用状态。
竞争对性能具有双重影响:
* 竞争可减少数据库可处理的工作量。例如,锁竞争可减少每秒可执行的 SQL 语句数量。
* 竞争可减少系统其他部分的负载量。例如,锁竞争可实际减少 /O 需求,消除锁竞争可能导致磁盘上负载的增加。
图 3 描绘了竞争的影响。数据库处理应用程序需求的能力限制反而可使需求下降到较低的水平。实际上,这意味着竞争可减少 I/O 子系统上的需求。
Oracle网不允许Oracle专业人员调整根本的网络传输层,并且大多数的网络流量不能在Oracle环境中被改变。但网络信息包的频率和大小可以被Oracle DBA来控制。Oracle有大量的工具来改变信息包的频率和大小。
在服务器间的Oracle网络连接可以用几个参数来调谐。但是,你一定要记住,网络的调谐一定要在Oracle的外面并且一个有资格的网络管理员必须有在被商议后才可以调谐网络。信息包的频率和大小可以受到下面参数文件的设置的影响。
Row-resequencing (行的重新排序)
就象我们上面提到的,有经验的 Oracle DBA 都知道 I/O 是响应时间的最大组成部分。其中磁盘 I/O 特别厉害,因为当 Oracle 由磁盘上的一个数据文件得到一个数据块时,读的进程就必须等待物理 I/O 操作完成。磁盘操作要比数据缓冲慢 10,000 倍。因此,如果可以令 I/O 最小化,或者减少由于磁盘上的文件竞争而带来的瓶颈,就可以大大地改善 Oracle 数据库的性能。
调整 Oracle 的竞争
Oracle 的其中一个优点时它可以管理每个表空间中的自由空间。 Oracle 负责处理表和索引的空间管理,这样就可以让我们无需懂得 Oracle 的表和索引的内部运作。不过,对于有经验的 Oracle 调优专家来说,他需要懂得 Oracle 是如何管理表的 extent 和空闲的数据块。对于调整拥有高的 insert 或者 update 的系统来说,这是非常重要的。
调整 Oracle 的排序操作
排序是 SQL 语法中一个小的方面,但很重要,在 Oracle 的调整中,它常常被忽略。当使用 create index 、 ORDER BY 或者 GROUP BY 的语句时, Oracle 数据库将会自动执行排序的操作。通常,在以下的情况下 Oracle 会进行排序的操作:
Oracle 的SQL 调优
Oracle 的 SQL 调优是一个复杂的主题,甚至是需要整本书来介绍 Oracle SQL 调优的细微差别。不过有一些基本的规则是每个 Oracle DBA 都需要跟从的,这些规则可以改善他们系统的性能。 SQL 调优的目标是简单的:
Oracle外部的性能问题
Oracle 并不是单独运行的。 Oracle 数据库的性能和外部的环境有很大的关系。这些外部的条件包括有:
.CPU--CPU 资源的不足令查询变慢。当查询超过了 Oracle 服务器的 CPU 性能时,你的数据库性能就受到 CPU 的限制。