zoukankan      html  css  js  c++  java
  • Oracle等待事件之db file scattered read

    1、产生原因

    该等待事件通常发生在数据库多块读时,表示发生了与全表扫描快速索引扫描相关的等待。通常意味着全表扫描过多,或者I/O 能力不足,或者I/O 竞争。

    2、确定产生问题对象方法

    a)查找全表扫描的SQL 语句可以使用以下语句:

    select sql_text

    from v$sqltext t, v$sql_plan p

    where t.hash_value = p.hash_value

    and p.operation = 'TABLE ACCESS'

    and p.options = 'FULL'

    order by p.hash_value, t.piece;

    b)查找Fast Full Index 扫描的SQL 语句可以使用以下语句:

    select sql_text

    from v$sqltext t, v$sql_plan p

    where t.hash_value = p.hash_value

    and p.operation = 'INDEX'

    and p.options = 'FULL SCAN'

    order by p.hash_value, t.piece;

    3、解决办法

    (1)在合适的字段上建立索引把表的访问方式从全表扫描变为索引扫描可以有效地降低物理IO。

    (2)对于大表,在合适的字段,比如年月、地区编码上建立分区把全表扫描变成分区扫描以减少物理IO。

    (3)把需要经常扫描的数据库表放在KEEP 池同样会有效地降低物理IO。

    (4)调整db_file_multiblock_read_count值,以达到每次读取更多数据块的目的。

  • 相关阅读:
    poj 2773 利用欧拉函数求互质数
    poj3358:欧拉定理
    poj:2992 因子数量
    poj3696:同余方程,欧拉定理
    USACO5.4-Character Recognition
    hdu5017:补题系列之西安网络赛1011
    hdu5014:number sequence对称思想
    欧拉函数,欧拉定理例题整理
    POJ 3463 Sightseeing (次短路)
    POJ
  • 原文地址:https://www.cnblogs.com/wcwen1990/p/6660397.html
Copyright © 2011-2022 走看看