当前位置: 首页 > article >正文

oracle统计信息

1. 查看表的统计信息

1.建表
SQL> create table test as select * from dba_objects;

2.查看表的统计信息
select owner, table_name, num_rows, blocks, avg_row_len
  from dba_tables
 where owner = 'SCOTT'
   and table_name = 'TEST';
OWNER			       TABLE_NAME			NUM_ROWS     BLOCKS AVG_ROW_LEN
------------------------------ ------------------------------ ---------- ---------- -----------
SCOTT			       TEST

3. 收集统计信息
BEGIN
  DBMS_STATS.GATHER_TABLE_STATS(
     ownname => 'SCOTT',
 tabname => 'TEST',
 estimate_percent => 100,
 method_opt   => 'for all columns size auto',
 degree => 30,
 cascade => TRUE);
  END;
 /
 

4.再次查看统计信息
select owner, table_name, num_rows, blocks, avg_row_len
  from dba_tables
 where owner = 'SCOTT'
      and table_name = 'TEST';

OWNER			       TABLE_NAME			NUM_ROWS     BLOCKS AVG_ROW_LEN
------------------------------ ------------------------------ ---------- ---------- -----------
SCOTT			       TEST				   86262       1260	     98


5. 查看test表的直方图
select sta.column_name,
       sta.num_distinct,
       sta.num_nulls,
       sta.num_buckets,
       sta.HISTOGRAM
  from dba_tab_col_statistics sta
 where sta.owner = 'SCOTT'
   and sta.table_name = 'TEST'



6.查看表和列的统计信息
select sta.column_name,
       tab.num_rows,
       sta.num_nulls,
       sta.num_distinct cardinality,
       round(sta.num_distinct / tab.num_rows * 100, 2) selectivity,
       sta.HISTOGRAM,
       sta.num_buckets
  from dba_tab_col_statistics sta, dba_tables tab
 where sta.owner = tab.owner
   and sta.table_name = tab.table_name
   and sta.owner = 'SCOTT'
   and sta.table_name = 'TEST';

estimate_percent:采样率,0.0000001~100,一般设置为30
degree :设置cpu负载
method_opt :直方图收集策略(for all columns size 1:所有列不收集,for all columns size skewonly:对所有列自动判断是否收集,for all columns size auto:对出现在where条件中的列自动判断是否收集,for all columns size repeat:当前哪些列收集统计信息,还对那些列收集)

2.查看索引的统计信息

1.创建索引(会自动收集统计信息)
SQL> create index idx_id on test(object_id);

2.查看索引统计信息
select idx.blevel, idx.leaf_blocks, idx.clustering_factor, idx.status
  from dba_indexes idx
 where idx.index_name = 'IDX_ID';

    BLEVEL LEAF_BLOCKS CLUSTERING_FACTOR STATUS
---------- ----------- ----------------- --------
	 1	   191		    1304 VALID

3. 单独对索引收集统计信息
begin
  dbms_stats.gather_index_stats( 
  ownname => 'SCOTT',
  indname => 'IDX_ID');
 end;
/ 


3.查看统计信息状态

1.查看统计信息是否过期
select s.owner, s.table_name, s.object_type, s.stale_stats, s.last_analyzed
  from dba_tab_statistics s
 where s.owner = 'SCOTT'
   AND S.table_name = 'EMP';
PS:stale_stats为yes表示统计信息过期
   

2.查看统计信息过期原因
select alm.table_owner,
       alm.table_name,
       alm.inserts,
       alm.updates,
       alm.deletes,
       alm.timestamp
  from all_tab_modifications alm
 where alm.table_owner = 'SCOTT'
   and alm.table_name = 'TEST';
PS:当表中有10%的数据发生改变,就会引起统计信息过期


3.检查表统计信息过期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 idx.table_owner, idx.table_name
          from dba_indexes idx
         where (idx.owner, idx.table_name) in
               (select plt.object_owner, plt.object_name
                  from plan_table plt
                 where plt.object_type = '%INDEX%'))



4.统计过期原因
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%'));


http://www.kler.cn/a/106343.html

相关文章:

  • GitLab 降级安装出现 500 错误,如何解决?
  • 要查看你的系统是 x64(64位)还是 x86(32位),可以按照以下步骤操作
  • 《应用数学学报》
  • springboot004基于springboot004网页时装购物系统(源码+包运行+LW+技术指导)
  • node对接ChatGpt的流式输出的配置
  • 安装paddle
  • 万能鼠标设置 SteerMouse v5.6.8
  • 【高效开发工具系列】Postman
  • 交换机基础(四):MSTP负载均衡配置案例
  • 1-多媒体通信概述
  • 『力扣刷题本』:合并两个有序链表(递归解法)
  • Microsoft.Extensions 简介
  • golang 工程组件:grpc-gateway 环境安装+默认网关测试
  • LeetCode--3.无重复字符的最长子串
  • 【APP VTable】和市面上的 Table 组件一样,都是接收表格[] 以及数据源[]
  • 最新SQL注入漏洞修复建议
  • Android Glide限定onlyRetrieveFromCache取内存缓存submit超时阻塞方式,Kotlin
  • 什么是可重入,什么是可重入锁? 它用来解决什么问题?
  • 泛微OA之获取每月固定日期
  • LabVIEW更改图像特定部分的颜色
  • 【API篇】十、生成Flink水位线
  • 3DMAX金属屋顶墙面铺设插件使用方法
  • 自动驾驶感知算法面经(20+)
  • toluaframework中C#怎么调用Lua的方法以及无GC方法
  • 大数据平台架构及规划
  • 计算机网络【CN】IPV4报文格式