对于数据库使用环境数据库在使用中出现的问题,可能由表空间、文件系统、数据文件、进程等组件当中的任意一个造成,
甚至有可能是由于某一个SQL语句的性能太差造成系统性能问题。因此,当数据库出现问题,彻查问题的根本原因成为重复、繁杂的劳动,
但是在排查问题前,身为性能测试技术人员先要了解用什么工具,明确监控哪些数据库性能指标,有的放矢,才有收获,如下oracle监控性能指标以及使用监控分析方法:
指标名称 | 故障问题描述与诊断分析 | |
Oracle 数据访问数据方式 | ||
全表扫描/秒 (Full Scans/sec) | 指标描述 | 指每秒全表扫描的数量。全表扫描可以是基本表扫描或全索引扫描。由于全表扫描需要耗费大量时间,因此全表扫描的频率过高的话CPU使用率会过高,会影响性能。 |
指标诊断 | 1、 通过使用Spotlight进行SQL问题获取。 2、 通过数据库日志分析获取对象有问题的SQL | |
指标分析 | 1、通过使用Spotlight或者事件探查器分析看是否需要通过全表扫描方式,来优化SQL查询性能。 2、对于大数量有历史数据等情况进程查询表数据,可以通过分析是否进行分区表来提高查询效率。 | |
其他 | 指标描述 | SQL语法写法问题,导致过度消耗资源CPU/内存 |
指标诊断 | 1、 通过使用Spotlight进行SQL问题获取。 2、 通过数据库日志分析获取对象有问题的SQL | |
指标分析 | 嵌套太多子查询或者排序语法等问题,通过修改SQL实现方式 | |
ORACLE 数据库实例参数配置分析 | ||
缓冲区 等待 Buffer wait | 指标描述 | 指在缓冲区中获取Buffer 的等待几率 |
指标诊断 | 通过使用Spotlight或者快照方式获取对应的指标数值 | |
指标分析 | 通过使用Spotlight该性能指标应该接近100%; | |
缓冲区命中率 Buffer Hit % | 指标描述 | 指数据块在数据缓冲区中的命中率 |
指标诊断 | 通过使用Spotlight或者快照方式获取对应的指标数值 | |
指标分析 | 该值一般应该90%以上; | |
共享区命中率 SharedPool % | 指标描述 | 共享池的使用情况 |
指标诊断 | 通过使用Spotlight或者快照方式获取对应的指标数值 | |
指标分析 | 通过使用Spotlight分析,该值一般应该90%以上; | |
内存排序使用率 | 指标描述 | 指排序操作在内存中进行的比率。当查询需要排序时,现在内存排序,内存不足就会利用临时表空间进行磁盘排序,造成IO问题,影响效率。 |
指标诊断 | 通过使用Spotlight或者快照方式获取对应的指标数值 | |
指标分析 | 该值通常接近100%性能比较好; | |
日志文件同步 Log file sync | 指标描述 | 这个等待事件是指当一个会话完成一个事物时,必须等到LGWR进程将会话的redo 信息从日志缓冲区写到日志文件中,才能继续执行下去。 |
指标诊断 | 通过使用Spotlight或者快照方式获取对应的指标数值 | |
指标分析 | 这个等待事件的时间过长,可能因为提交或者更新数据 太频繁或者一次写日志的时间太长; | |
Redo 缓冲区等待率 Redo wait | 指标描述 | 指在Redo缓冲区中获取Buffer 的等待几率 |
指标诊断 | 通过使用Spotlight或者快照方式获取对应的指标数值 | |
指标分析 | 该性能指标应该接近100%; | |
oracle 中锁(Locks)性能计数器 | ||
队列等待 (enqueue(cs)) | 指标描述 | 该锁定机制保护共享资源,如记录中的数据,以避免两个人在同一时间更新同一数据。enqueue包括一个排队机制,即FIFO(先进先出)排队机制。 |
指标诊断 | 通过使用Spotlight、快照方式、LR监控获取对应的指标数值 | |
指标分析 | 如果enqueue等待事件比较显著,则需要根据enqueue等待类型,采取相应的优化方法。 防止多个事务并发使用资源,尽可能少使用锁来提高性能开销。 |