解析4-4 对于常见的一些IDLE wait事件举例: dispatcher timer lock element cleanup Null event parallel query dequeue wait parallel query idle wait - Slaves pipe get PL/SQL lock timer pmon timer- pmon rdbms ipc message slave wait smon timer SQL*Net break/reset to client SQL*Net message from client SQL*Net message to client SQL*Net more data to client virtual circuit status client message SQL*Net message from client 下面是关于这里的常见的等待事件和解决方法的一个快速预览 等待事件 一般解决方法 Sequential Read 调整相关的索引和选择合适的驱动行源 Scattered Read 表明出现很多全表扫描。优化code,cache小表到内存中。 Free Buffer 增大DB_CACHE_SIZE,增大checkpoint的频率,优化代码 Buffer Busy Segment header 增加freelist或者freelistgroups Buffer Busy Data block 隔离热块;使用反转索引;使用更小的块;增大表的initrans Buffer Busy Undo header 增加回滚段的数量或者大小 Buffer Busy Undo block Commit more;增加回滚段的数量或者大小 Latch Free 检查具体的等待latch类型,解决方法参考后面介绍 Enqueue–ST 使用本地管理的表空间或者增加预分配的盘区大小 Enqueue–HW 在HWM之上预先分配盘区 Enqueue–TX4 在表或者索引上增大initrans的值或者使用更小的块 Log Buffer Space 增大LOG_BUFFER,改善I/O Log File Switch 增加或者增大日志文件 Log file sync 减小提交的频率;使用更快的I/O;或者使用裸设备 Write complete waits 增加DBWR;提高CKPT的频率;
|