• 多个表关联或者有视图套视图,快速检查SQL语句中所有的表统计信息是否过期


    多个表关联或者有视图套视图,快速检查SQL语句中所有的表统计信息是否过期
    现有如下SQL:
    select * from emp e,dept d where e.deptno=d.deptno;
     
    先用explain plan for命令,在plan_table中生成SQL的执行计划:
     
    SQL> explain plan for select * from emp e,dept d where e.deptno=d.deptno;
     
    Explained.
     
    然后使用下面脚本检查SQL语句中所有的表的统计信息是否过期:
     
    SQL> select owner, table_name, object_type, stale_stats, last_analyzed
    from dba_tab_statistics
    where (owner, table_name) in
    (select object_owner, object_name
    from plan_table
    where object_type like '%TABLE%'
    union
    select table_owner, table_name
    from dba_indexes
    where (owner, index_name) in
    (select object_owner, object_name
    from plan_table
    where object_type like '%INDEX%'));
     
    OWNER TABLE_NAME OBJECT_TYP STALE_STATS LAST_ANALYZED
    ---------- ---------- ---------- --------------- ------------------
    SCOTT DEPT TABLE NO 05-DEC-16
    SCOTT EMP TABLE YES 22-OCT-16
     
     
    最后可以使用下面脚本检查SQL语句中表统计信息的过期原因:
     
    select *
      from all_tab_modifications
     where (table_owner, table_name) in
           (select object_owner, object_name
              from plan_table
             where object_type like '%TABLE%'
            union
            select table_owner, table_name
              from dba_indexes
             where (owner, index_name) in
                   (select object_owner, object_name
                      from plan_table
                     where object_type like '%INDEX%'));
     
     
     
  • 相关阅读:
    使用正则表达式,取得点击次数,函数抽离
    爬取校园新闻首页的新闻
    网络爬虫基础练习
    综合练习:词频统计
    【Art】虹吸原理(5月份订正版)
    【失踪人口】准初三的JZSC
    【Mood】出大问题(最近很喜欢说这句话)
    【Matrix】矩阵加法&乘法
    【C++】stdio.h和cstdio
    【Theorem】中国剩余定理
  • 原文地址:https://www.cnblogs.com/liang545621/p/12611893.html
Copyright © 2020-2023  润新知