十个最流行的Oracle性能指标,DBA必知

jopen 9年前
 

你在尝试提升你的数据库性能么?那么,这十个性能指标你必须要了解。

在评估你的Oracle数据库的KPI指标之前,你需要验证你的设想是否正确。这一点是最重要的。否则,你会像一个无头苍蝇,永远都找不到提升数据库性能的方法。因为你的设想本身就是错误的。你需要时刻关注哪些假设是错误的。这有有助于帮你了解Oracle是如何工作的,在哪些地方发生了改变。

如今,数据库是应用程序的灵魂。成千上万的企业都在使用Oracle当做本地数据的核心,基于云和混合的架构也是如此。从后台应用到日常商业数据统计,从战略分析报告到预测,都能看见数据库的身影。

随着Oracle数据库被大规模使用,你需要仔细监控性能水平,看是否还需要资源来支持部署。大家都不希望为了防止数据库的崩溃,而大量更改数据库配置或增加大量的服务器。那么,就需要经常留意整个数据库的KPI指标,找到它潜在的瓶颈和一些崩溃的迹象。

这里就来介绍一下我们需要知道的十个性能指标。

分配不足的RAM区域

大多数情况下,你可以依靠Oracle推荐的自动内存管理流程。有时候,你可以通过增加RAM使磁盘访问速度显著提升。但如果你不分配足够的内存用于SHARED_POOL_SIZE,PGA_AGGREGATE_TARGET和DB_CACHE_SIZE,那么你的数据库的物理I / O将会进度缓慢。

内存排序率

数据库运行缓慢是一个很让大家困扰的问题。因为磁盘排序必须在表空间,这远比在内存中排序要慢得多。

执行率分析

他们第一次执行时,必须解析SQL。其中包括语法检查,语义检查,决策树和执行计划,以便可以高效率的执行。执行计划会储存在缓存库中,下一次执行时会节省时间。解析包括硬解析和软解析,你需要同时简化这两个。硬解析是在运行初始时将全部SQL进行解析。软解析只解析变量。为了更好的执行解析比例,你需要增加session cache cursors(默认为50)。在100至1000的值中找到最佳的性能。

多余的嵌套循环联接

当你对迭代循环缓慢束手无策的时候,你需要深入到代码中找到更快的解决方案,而不是尽可能的使用嵌套循环联接。若还是没法解决,64位 Oracle系统应该更适合你,因为他们有千兆字节的RAM排序和散列连接。要确保你有足够的RAM来让CBO通过设置 PGA_AGGREGATE_TARGET参数选择散列连接,使其周转更快。

Page清除率

这个指标对于在线出版商和电子商务网页来说越来越重要。Page清除人员将旧的Page写入disk asynchronously中,以便新的Page可以被读入缓冲池。一个好的Page清除率是在95%左右。

缓冲池I / O的平均响应时间

/29/9a1a4312141c483393b38dd341e023de635817136754922878.jpg” alt=”” />

这时最终用户最感兴趣的一个东西。人们可以迅速的感觉到I / O响应瓶颈并进行抱怨。需要将缓冲池的平均读/写时间控制在10毫秒左右。

全表扫描

如果你看到全表扫描一致在持续进行着,那一定发生了严重的错误。网上交易和高容量操作都需要更高的工作效率。看看你的事务设计。搜索要命的索引和全面优化的SQL。如果你的全表扫描带回不到20%的表行,很可能有索引丢失。

事务日志响应时间

付款延迟,这是一个严重的问题。记录响应时间会对延迟产生很大的影响。需要使日志响应时间不超过10毫秒,就像缓冲池的I / O那样。

行读取/行选择的比例

这可以节省你的研究时间。它会告诉你在返回指定行之前数据库读取了多少行。如果这个比例高于20,则可能是创建索引的问题。你需要详细研究哪里的比例高于一般值。

人为错误

你没有看错,造成数据库问题的最大可能其实来自数据库管理者本身。例如,你可能忽略了监控数据库的STATSPACK/ AWR。还可能,你忘了在OEM业绩屏幕上设置自定义异常报告警报。一位智者曾经说过,“Man is the measure of all things.”不要忘了自检。