db文件分散阅读

  

  <强>   

  

  ,

  

  <强>         

  

  <强>         

  

  <强>         

  

  <强>         

  

  ,

  

  <强>         

  

  甲骨文在执行全表扫描(   <强>全表扫描,FTS ),索引快速全扫描(   <>强指数快速全扫描)时,为保障性能,尽量一次性读取多个块,这称为   <>强多块I/O 。   
每次执行多块I/O,都会等待物理I/O结束,此时等待   <强> db文件分散阅读事件。

  

     

  

  这个事件表明用户进程缓冲区读入SGA缓冲区缓存,等待一个物理I/O调用返回。A  db文件分散read 问题分散读取数据读入多个不连续的内存位置。分散阅读通常是一个多次拉丝阅读。它可以发生快速全扫描(索引)除了一个全表扫描。

  

  从而db  file  scattered  read 等发生事件标识一次全盘扫描。当执行一个完整的扫描,读取缓冲区缓存,块读取到内存位置不是身体上彼此相邻。这样的阅读被称为分散读调用,因为分散在内存块。这就是为什么相应的等待事件叫做& # 39;分散读# 39;db文件。多次拉丝(用DB_FILE_MULTIBLOCK_READ_COUNT 块)由于全扫描读入缓冲区缓存显示为等待& # 39;分散读# 39;db文件。

  

     

  

  相似的过多;   <强> db文件顺序读强,除了会话阅读多个数据块。

  

   db文件分散阅读”>
  <br/> </p>
  <p>
  <强>
  
  
  </强> </p>
  <p>
  <强> 1 SQL优化</强> </p>
  <p>如果是某些SQL引起的,例如统计信息不准确,没有索引或使用低效的索引等,可以通过优化SQL,降低db文件分散阅读;</p>
  <p>
  <强> 2分区表</强> </p>
  <p>
  可以考虑将全表扫描优化成分区扫描;</p>
  <p>
  <强> 3增大缓冲区缓存</强> </p>
  <p>如果db文件分散阅读出现特别频繁,缓冲冲击较低,可以考虑增大缓冲区缓存;</p>
  <p>
  <强> 4使用更快的存储;
  <br/> </强> </p>
  <p>
  <强>
  </强> </p>
  <p>
  <强>
  </强> </p>
  <p>
  <强>
  </强> </p>
  <p>
  <img src=

  

  

  

  

  

  

  

   db文件分散阅读”>,</p>
  <p>
  <强>检查following  V $ SESSION_WAIT 参数列:</强> </p>
  <p>
  <强> P1 </强>:绝对文件号</p>
  <p>
  <强> P2 </强>:块读</p>
  <p>
  <强> P3 </强>:块的数量(应该大于1)</p>
  <p>
  </p>
  <p>
  </p>
  <p>
  </p>
  <p>
  </p>
  <p>
  <img src=

  

  <强>   

  

  

db文件分散阅读