BUFFER CACHE之主要的等待事件
原因:资源紧张,等待其释放。
原因的原因:1. lgwr和DBWn进程写太慢;2. Buffer和latch不可用
原因的原因的原因:全表扫描、library cache latches数太多等。
视图:V$SYSTEM_EVENT (instance-level waits), V$SESSION_EVENT (session-level waits)
注意: 等待与共享池和缓冲池中的高命中率(high hit ratios)无关!换句话说,高命中率也会有长时间的等待。
* Buffer Busy Waits
This wait indicates that there are some buffers in the buffer cache that multiple
processes are attempting to access concurrently. To determine the wait statistics for
each class of buffer, query the v$waitstat view. Common buffer classes that have
buffer busy waits include:
缓冲池中的buffer块被多个进程并发访问,用v$waitstat视图查看各类buffer的等待统计数据。
- Data Block
If the contention is on tables or indexes (not the segment header):
Check for SQL statements using unselective indexes.
Check for right-hand-indexes (that is, indexes that are inserted at the same
point by many processes; for example, those which use sequence number
generators for the key values).
Consider using automatic segment-space management or increasing free lists to
avoid multiple processes attempting to insert into the same block.
- Data Block (continued)
The v$session_wait view will provide the file and block numbers (in the
P* columns) for those blocks that have the most frequent block waits. These
blocks can then be mapped to which object they belong.
- Undo Header
Displays contention on rollback segment header: If you are not using automatic
undo management, then add more rollback segments.
- Undo Block
Displays contention on rollback segment block: If you are not using automatic
undo management, consider making rollback segment sizes larger.
* Free Buffer Inspected
This is a measure of how many buffers on the LRU list are inspected by a process
looking for a free buffer (writing a new block) before triggering DBWn to flush the
dirty buffers to disk.
* Free Buffer Waits
This wait event indicates that a server process was unable to find a free buffer and
has requested the database writer to make free buffers by writing out dirty buffers. A
dirty buffer is a buffer whose contents have been modified. Dirty buffers are freed
for reuse when DBWn has written the blocks to disk.
To resolve the contention, DBWn has to make buffers available faster for
overwriting. To achieve this, examine ways of speeding up the write process. This
event is also an indication that the buffer cache is too small. Examine the hit ratios
for the buffer cache to determine if the cache should be resized.
If this event occurs frequently, examine the session waits for DBWn to determine
whether there is anything delaying DBWn.
Causes
DBWn may not be keeping up with writing dirty buffers in the following situations:
- The I/O system is slow.
Solution: Check that the files are equally distributed across all devices. If that
produces no effect get faster disks or place offending files onto faster disks.
- The I/O is waiting for resources, such as latches.
Solution: Check that the files are equally distributed across all devices. If that
produces no effect get faster disks or place offending files onto faster disks.
- The buffer cache is so small that DBWn spends most of its time cleaning out
buffers for server processes.
Solution: Increase the buffer cache size.
- The buffer cache is so large that one DBWn process cannot free enough buffers
in the cache to satisfy requests.
Solution: Decrease the buffer cache size or initialize more database writer
processes.
BUFFER CACHE之主要的等待事件的更多相关文章
- DBA_Oracle Event等待事件分析(概念)
2014-12-18 Created By BaoXinjian
- ORACLE等待事件:read by other session
read by other session简介 官方关于read by other session的介绍如下: When information is requested from the datab ...
- Buffer Cache
Buffer Cache Buffer Cache是SGA区中专门用于存放从数据文件中读取的的数据块拷贝的区域.Oracle进程如果发现需要访问的数据块已经在buffer cache中,就直接读写内存 ...
- Oracle常见的几种等待事件
1. CPU time CPU time其实不是真正的等待事件.是衡量CPU是否瓶颈的一个重要指标.一般来讲,一个良好的系统,CPU TIME 应该排在TOP 5 TIME Event的最前面. 当然 ...
- Buffer Cache 原理
在将数据块读入到SGA中,他们的缓冲区被放置在悬挂散列存储桶的链表中(散列链),这种内存结构由大量 子cache buffers chains锁存器(也称为散列锁存器或CBC锁存器)保护. Buffe ...
- Latch free等待事件
Latch free等待事件的三个参数:p1-latch的地址:p2-latch编号:p3-请求次数.从oracle10g起,latchfree不再包含所有的latch等待,有些latch等待可能表现 ...
- Oracle buffer cache与相关的latch等待事件
buffer cache与相关的latch等待事件 1.buffer cache 2.latch:cache buffers lru chain 3.latch:cache buffers chain ...
- 模拟产生CBC LATCH与buffer busy wait等待事件
数据库版本:11.2.0.4.0 1.查出表TEST相关信息 select rowid, dbms_rowid.rowid_row_number(rowid) rowid_rownum, dbms_r ...
- RAC性能分析 - gc buffer busy acquire 等待事件
概述---------------------gc buffer busy是RAC数据库中常见的等待事件,11g开始gc buffer busy分为gc buffer busy acquire和gc ...
随机推荐
- 用hibernate自动创建mysql表,添加失败org.hibernate.exception.SQLGrammarException
今天遇到了一个很坑人的问题,从昨晚一直搞到今天早上,终于发现了,先整理下: [背景]:利用hibernate自动给mysql创建一个表,然后为表里面添加一行记录,非常的简单(当然其中还涉及到sprin ...
- uva 10303
卡特兰数 但是个高精度 一开始用最普通的递推式 超时了 百度百科了一下 用另类递推式过了 ~~ 这个大数类是做数据结构课程设计的时候写的... #include <cstdio> #in ...
- LoadAssetAtPath 与 Load 的区别
一.官方的文档 Resources.LoadAssetAtPath Returns a resource at an asset path (Editor Only). This function a ...
- 词法分析器flex的使用
词法分析器flex的功能说起来就是一句话,将正则表达式转化为c代码. flex编译成功后会生成一个flex.exe的可执行文件.此时,我们需要一个定义了正则表达式 动作的input文件.例如test. ...
- Appium绑定
锁定 锁定屏幕 # python driver.lock(5) 将 app 置于后台 把当前应用放到后台去 # python driver.background_app(5) 收起键盘 收起键盘 # ...
- Restore IP Addresses
Given a string containing only digits, restore it by returning all possible valid IP address combina ...
- hdu 1195 Open the Lock(广搜,简单)
题目 猜密码,问最少操作多少次猜对,思路很简单的广搜,各种可能一个个列出来就可以了,可惜我写的很搓. 不过还是很开心,今天第一个一次过了的代码 #define _CRT_SECURE_NO_WARNI ...
- hdu 1376 Octal Fractions
刚开始做这题时,用的是0.75[8]=(7/8+5/64)[10]这个,但是总是WA…………无语了…… 后来看别人的解题报告,知道了另外一个就是0.75[8]=((5/8+7)/8)[10],从低位向 ...
- Git stash方法(转)
命令:git stash1.使用git stash保存当前的工作现场,那么就可以切换到其他分支进行工作,或者在当前分支上完成其他紧急的工作,比如修订一个bug测试提交. 2.如果一个使用了一个git ...
- 删除单链表的倒数第k个结点
策略 直接遍历总数为len,再次遍历第len-k+1个就是答案,但是这样遍历了O(N+k)个,可以在O在更短的时间内找到 图示 参考代码 #include <iostream> using ...