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 ...
随机推荐
- iframe嵌入其他网站,如何自适应高度
终于有一周时间,工作不那么忙了,腾出手来总结下工作过程中学到的知识. 每天遇到新问题,解决新问题,但是却很少有时间去仔细研究下,或者总结下.攒的多了,就得从头捋一遍. 说下iframe自适应高度: 搜 ...
- Oracle中的 UPDATE FROM 解决方法
转:http://www.cnblogs.com/JasonLiao/archive/2009/12/23/1630895.html Oracle中的 UPDATE FROM 解决方法 在表的更新操作 ...
- NGINX的奇淫技巧 —— 3. 不同域名输出不同伺服器标识
NGINX的奇淫技巧 —— 3. 不同域名输出不同伺服器标识 ARGUS 1月13日 发布 推荐 0 推荐 收藏 6 收藏,707 浏览 大家或许会有这种奇葩的需求...要是同一台主机上, 需要针对不 ...
- linux源代码阅读笔记 linux文件系统(二)
上一篇文章说到linux文件系统中分为超级块,inode块,block块.inode块给出文件的权限,修改时间,大小等信息. 但是实际上,文件的数据是存储在block块中的.而inode块中给出了存储 ...
- C# 静态类
静态类是不能实例化的,我们直接使用它的属性与方法,静态类最大的特点就是共享. 探究 public static class StaticTestClass { ; public static void ...
- C# 委托的”四步走“
看了一本<深入了解C#>感觉很不错,对于委托的讲解,给大家摘录了下来! 1.什么是委托 我的拙见:委托就是将方法作为参数,进行传递的 书中的记载:将某种行为“包含”在一个对象中,这个对象可 ...
- hdu 4282 A very hard mathematic problem
由于k的范围是0-2^31,而且x,y,z都是正整数,由题易知道2<=z<31,1<=x<y;所以直接枚举就好了!!! #include<iostream> #in ...
- Ubuntu 12.04LTS 找不到eth0网卡
我的机器是DELL 14R INSPRION 7420 笔记本.试了好多方法都不行,比如这个教程: . sudo ifconfig -a //查看所有网卡现状,看eth0是否存在,在结果列表应该找不到 ...
- 李洪强漫谈iOS开发[C语言-010] - C语言简要复习
// // main.m // 05 - 简要复习 // // Created by vic fan on 16/7/13. // Copyright © 2016年 李洪强. All rig ...
- WCF入门(十二)---WCF异常处理
WCF服务开发者可能会遇到需要以适当的方式向客户端报告一些不可预见的错误.这样的错误,称为异常,通常是通过使用try/catch块来处理,但同样,这是非常具体的技术. 由于客户端的关注领域不是关于如何 ...