WEB开发网
开发学院数据库Oracle Oracle数据库缓冲区忙等待的原因解析 阅读

Oracle数据库缓冲区忙等待的原因解析

 2007-05-09 12:12:58 来源:WEB开发网   
核心提示: session可能有与等待的session查询不协调的缓冲块,由于缓冲区忙等待是由不同特定的块之间的竞争而造成的,Oracle数据库缓冲区忙等待的原因解析(2),所以只能通过识别哪些块发生冲突和冲突产生的原因,你才有可能做出判断,原因编码的范围从0到300,并可以解码,相应的调整包括识别和

session可能有与等待的session查询不协调的缓冲块。

由于缓冲区忙等待是由不同特定的块之间的竞争而造成的,所以只能通过识别哪些块发生冲突和冲突产生的原因,你才有可能做出判断,相应的调整包括识别和消除块竞争的原因。

v$session_wait性能视图,提供了识别等待产生原因的方法。

v$session_wait视图的列代表的缓冲区忙等待事件如下:

P1—与等待相关的数据文件的全部文件数量。

P2—P1中的数据文件的块数量。

P3—描述等待产生原因的代码。

这里是一个这些值的Oracle数据词典查询: 
select
  p1 "File #".
  p2 "Block #",
  p3 "Reason Code"
from
  v$session_wait
where
  event = 'buffer busy waits';
 

如果以上查询的结果显示一个块在忙等待,以下的查询将显示这一块的名称和类型: 
select
  owner,
  segment_name,
  segment_type
from
  dba_extents
where
  file_id = &P1
and
 &P2 between block_id and block_id + blocks -1;
 

一旦这一块被识别,v$segment_statistics性能视图促使块水平统计的实时监控。这一过程使得DBA识别与独立列表与索引有关的问题。

我们也可以查询dba_data_files以确定卷入等待的文件的file_name,方法是使用v$session_wait中的P1。

从v$session_wait中查询P3(原因编码)的值可以知道session等待的原因。原因编码的范围从0到300,并可以解码。

在一个SCUR或XCUR缓冲区产生且没有结束的改变。

Tags:Oracle 数据库 缓冲区

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接