Oracle数据块组成与解析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

热点块诊断- 找到数据库对象
• column segment_name format a35 select /*+ RULE */ e.owner ||'.'|| e.segment_name segment_name, e.extent_id extent#, x.dbablk - e.block_id + 1 block#, x.tch, l.child# from sys.v$latch_children l, sys.x$bh x, sys.dba_extents e where x.hladdr = '&ADDR' and e.file_id = x.file# and x.hladdr = l.addr and x.dbablk between e.block_id and e.block_id + e.blocks -1 order by x.tch desc ;
热点块诊断- 找到latch id(ADDR)
• select CHILD# "cCHILD" , ADDR "sADDR" , GETS "sGETS" , MISSES "sMISSES" , SLEEPS "sSLEEPS" from v$latch_children where name = 'cache buffers chains' order by 5, 1, 2, 3;
Oracle数据块组成与解析
如何存储表数据


表A
表B



表 表空间
行片段

数据库块的结构
块头
扩展
空闲空间
ቤተ መጻሕፍቲ ባይዱ
行数据
数据块有关的初始化参数
• DB_BLOCK_SIZE 参数指定 Oracle 数据库块的 大小(以字节为单位)。 • DB_CACHE_SIZE 参数指定标准块缓冲区高速 缓存的大小。 • DB_FILE_MULTIBLOCK_READ_COUNT 参数指 定在执行与完整顺序扫描相关的输入/输出 (I/O) 操作过程中读取的最大块数。
热点块诊断 – 手段
• • • • • • 优化SQL或应用逻辑 增加DBW数量(DB_WRITER_PROCESSES) 增加PCTFREE 减少表空间BLOCK SIZE 使用HASH 分区表 使用翻转索引
热点块问题和优化
• • • • • • • • • • 热点块的定义 Statspack/AWR: latch:cache buffer chains 可能原因:不恰当的nest loop 找到对应SQL: SELECT sql_text,program FROM v$session s , v$session_wait w,v$sql sq ,v$latch l WHERE s.sid = w.sid AND w.event = 'latch free' AND p2 = l.latch# AND l.name ='cache buffers chains' AND s.sql_hash_value = sq.hash_value
相关文档
最新文档