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

oracle统计信息

1. 查看表的统计信息

1.建表
SQL> create table test as select * from dba_objects;2.查看表的统计信息
select owner, table_name, num_rows, blocks, avg_row_lenfrom dba_tableswhere owner = 'SCOTT'and table_name = 'TEST';
OWNER			       TABLE_NAME			NUM_ROWS     BLOCKS AVG_ROW_LEN
------------------------------ ------------------------------ ---------- ---------- -----------
SCOTT			       TEST3. 收集统计信息
BEGINDBMS_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_lenfrom dba_tableswhere owner = 'SCOTT'and table_name = 'TEST';OWNER			       TABLE_NAME			NUM_ROWS     BLOCKS AVG_ROW_LEN
------------------------------ ------------------------------ ---------- ---------- -----------
SCOTT			       TEST				   86262       1260	     985. 查看test表的直方图
select sta.column_name,sta.num_distinct,sta.num_nulls,sta.num_buckets,sta.HISTOGRAMfrom dba_tab_col_statistics stawhere 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_bucketsfrom dba_tab_col_statistics sta, dba_tables tabwhere sta.owner = tab.ownerand sta.table_name = tab.table_nameand 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.statusfrom dba_indexes idxwhere idx.index_name = 'IDX_ID';BLEVEL LEAF_BLOCKS CLUSTERING_FACTOR STATUS
---------- ----------- ----------------- --------1	   191		    1304 VALID3. 单独对索引收集统计信息
begindbms_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_analyzedfrom dba_tab_statistics swhere 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.timestampfrom all_tab_modifications almwhere alm.table_owner = 'SCOTT'and alm.table_name = 'TEST';
PS:当表中有10%的数据发生改变,就会引起统计信息过期3.检查表统计信息过期sql
select owner, table_name, object_type, stale_stats, last_analyzedfrom dba_tab_statisticswhere (owner, table_name) in(select object_owner, object_namefrom plan_tablewhere object_type like '%TABLE%'unionselect idx.table_owner, idx.table_namefrom dba_indexes idxwhere (idx.owner, idx.table_name) in(select plt.object_owner, plt.object_namefrom plan_table pltwhere plt.object_type = '%INDEX%'))4.统计过期原因
select *from all_tab_modificationswhere (table_owner, table_name) in(select object_owner, object_namefrom plan_tablewhere object_type like '%TABLE%'unionselect table_owner, table_namefrom dba_indexeswhere (owner, index_name) in(select object_owner, object_namefrom plan_tablewhere object_type like '%INDEX%'));
http://www.lryc.cn/news/208419.html

相关文章:

  • LeetCode 面试题 16.01. 交换数字
  • 手机apn介绍
  • 垃圾回收系统小程序
  • 【随机过程】布朗运动
  • 基于机器视觉的车道线检测 计算机竞赛
  • C语言文件读写,文件相关操作
  • 竞赛选题 深度学习卷积神经网络的花卉识别
  • CMake教程 - basic point
  • day52--动态规划11
  • Jenkins入门级安装部署
  • tcpdump 异常错误
  • 如何绘制【逻辑回归】中threshold参数的学习曲线
  • 4.1 数据库安全性概述
  • tftp服务的搭建
  • c语言简介
  • OpenLayers.js 入门教程:打造互动地图的入门指南
  • 黑马头条:app端文章查看
  • 常见使用总结篇(一)
  • 【软考系统架构设计师】2023年系统架构师冲刺模拟习题之《数据库系统》
  • 北邮22级信通院数电:Verilog-FPGA(7)第七周实验(1):带使能端的38译码器全加器(关注我的uu们加群咯~)
  • SIT3491ISO具有隔离功能,256 节点,全双工 RS422/RS485 芯片
  • 在windows服务器上部署一个单机项目以及前后端分离项目
  • 使用jdbc技术,在数据库中存储大数据对象(使用字节IO流读取图片等给blob等二进制类型数据赋值)
  • 统计学习方法 支持向量机(下)
  • 【python】如何注释
  • C++——C++入门(二)
  • 容联七陌百度营销通BCP解决方案,让营销更精准
  • Transformer模型 | 用于目标检测的视觉Transformers训练策略
  • 贪心区间类题目
  • npm改变npm缓存路径和改变环境变量