zoukankan      html  css  js  c++  java
  • [统计信息系列6] 数据字典统计信息

    (一)数据字典统计信息查看

    数据字典统计信息用来描述数据字典基表(如TAB$和IND$等)、数据字典基表上的索引以及数据字典基表的列的详细信息,与普通表的、索引、列的统计信息没有什么区别。


    (二)数据字典统计收集和删除

    Oracle会在自动收集统计信息任务中收集数据字典的统计信息,当然,我们也可以手动收集。

    方法一:对于数据字典的统计信息,可以使用如下语句收集和删除统计信息:

    DBMS_STATS.GATHER_DICTIONARY_STATS:收集

    DBMS_STATS.DELETE_DICTIONARY_STATS:删除

    方法二:数据字典表也是表,也可以使用对表的收集方法收集数据字典的统计信息

    DBMS_STATS.GATHER_SCHEMA_STATS(ownname => 'SYS')

    DBMS_STATS.GATHER_TABLE_STATS(ownname => 'SYS',tabname=>'TAB$',CASCADE=>true)


    (三)案例:数据字典统计信息引起的查询缓慢

    背景:在11.2.0.4的数据库中,某天执行如下语句速度非常慢,每次执行时间在150S以上,

    select * from v$lock WHERE TYPE IN('TM','TX');

    原因:统计信息不准确,导致走了错误的执行计划;

    解决方案:重新收集统计信息,具体操作如下:

    SQL> exec DBMS_STATS.GATHER_FIXED_OBJECTS_STATS(); 
    SQL> exec DBMS_STATS.DELETE_DICTIONARY_STATS; 
    SQL> exec DBMS_STATS.GATHER_DICTIONARY_STATS;

    然后再查询 v$lock,最终1s内出现结果。


    【完】

  • 相关阅读:
    使用策略模式减少if else
    php 向二维数组中追加元素
    svn update 产生Node remains in conflict的问题
    php对ip地址的处理
    php 对比两个数组中的值是否相等
    jquery 通过attr获取属性只有一个值的解决
    php 一维数组去重
    调整ceph的pg数(pg_num, pgp_num)
    linux-Centos 7下bond与vlan技术的结合[推荐]
    centos 配置vlan
  • 原文地址:https://www.cnblogs.com/lijiaman/p/13039447.html
Copyright © 2011-2022 走看看