ITPub博客

首页 > 数据库 > Oracle > 统计信息的查询方法

统计信息的查询方法

Oracle 作者:germany006 时间:2015-01-20 17:22:12 0 删除 编辑
转载地址:http://www.cnblogs.com/HondaHsu/archive/2012/05/22/2512798.html


1、查询表的统计信息(可查到统计信息的最后一次收集时间)
SELECT A.TABLE_NAME,
       A.NUM_ROWS,
       A.BLOCKS,
       A.EMPTY_BLOCKS,
       A.AVG_SPACE,
       A.CHAIN_CNT,
       A.AVG_ROW_LEN,
       A.GLOBAL_STATS,
       A.USER_STATS,
       A.SAMPLE_SIZE,
       TO_CHAR(A.LAST_ANALYZED, 'YYYY-MM-DD HH24:MI:SS')
  FROM DBA_TABLES A
 WHERE OWNER = UPPER(NVL('&OWNER', USER))
   AND TABLE_NAME = UPPER('&TABLE_NAME');

2、查询列的统计信息
SELECT T.COLUMN_NAME,
       T.DATA_TYPE,
       T.NULLABLE,
       T.NUM_DISTINCT,
       T.density,
       T.NUM_BUCKETS,
       T.NUM_NULLS,
       T.GLOBAL_STATS,
       T.USER_STATS,
       T.sample_size,
       TO_CHAR(T.LAST_ANALYZED, 'YYYY-MM-DD HH24:MI:SS')
  FROM DBA_TAB_COLS T
 WHERE TABLE_NAME = UPPER('&TABLE_NAME')
   AND OWNER = UPPER(NVL('&OWNER', USER));

3、查询索引的统计信息
SELECT T.INDEX_NAME,
       T.UNIQUENESS,
       T.BLEVEL,
       T.LEAF_BLOCKS,
       T.DISTINCT_KEYS,
       T.NUM_ROWS,
       T.AVG_LEAF_BLOCKS_PER_KEY,
       T.AVG_DATA_BLOCKS_PER_KEY,
       T.CLUSTERING_FACTOR,
       T.GLOBAL_STATS,
       T.USER_STATS,
       T.SAMPLE_SIZE,
       TO_CHAR(T.LAST_ANALYZED, 'YYYY-MM-DD HH24:MI:SS')
  FROM DBA_INDEXES T
 WHERE TABLE_NAME = UPPER('&TABLE_NAME')
   AND OWNER = UPPER(NVL('&OWNER', USER));



4.查看收集统计信息的Job
    select log_date,job_name,status      from dba_scheduler_job_run_details      where job_name='GATHER_STATS_JOB' order by log_id;
    select * from dba_scheduler_programs      where program_name=upper('GATHER_STATS_PROG');
   Select dbms_stats.get_stats_history_availability from dual;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28371090/viewspace-1408416/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: python学习笔记
请登录后发表评论 登录
全部评论
ORACLE,MYSQL,POSTGRESQL,SQLSERVER,MONGODB,TIDB,DB2,REDIS,本博客只为记录自己学习总结,不代表完全准确。

注册时间:2013-03-06

  • 博文量
    776
  • 访问量
    1038320