DBMS_STATS.GATHER_TABLE_STATS解析详解程序员
作用:DBMS_STATS.GATHER_TABLE_STATS统计表,列,索引的统计信息(默认参数下是对表进行直方图信息收集,包含该表的自身-表的行数、数据块数、行长等信息;列的分析 列值的重复数、列上的空值、数据在列上的分布情况;索引的分析-索引页块的数量、索引的深度、索引聚合因子).
DBMS_STATS.GATHER_TABLE_STATS的语法如下:
DBMS_STATS.GATHER_TABLE_STATS (
ownname VARCHAR2, tabname VARCHAR2, partname VARCHAR2, estimate_percentNUMBER, block_sample BOOLEAN, method_opt VARCHAR2, degree NUMBER, granularity VARCHAR2, cascade BOOLEAN, stattab VARCHAR2, statid VARCHAR2, statown VARCHAR2, no_invalidate BOOLEAN, force BOOLEAN);参数说明:
ownname:要分析表的拥有者
tabname:要分析的表名.
partname:分区的名字,只对分区表或分区索引有用.
estimate_percent:采样行的百分比,取值范围[0.000001,100],null为全部分析,不采样.常量:DBMS_STATS.AUTO_SAMPLE_SIZE是默认值,由oracle决定最佳取采样值.
block_sapmple:是否用块采样代替行采样.
method_opt:决定histograms信息是怎样被统计的.method_opt的取值如下(默认值为FOR ALLCOLUMNS SIZE AUTO):
for all columns:统计所有列的histograms.
for all indexedcolumns:统计所有indexed列的histograms.
for all hiddencolumns:统计你看不到列的histograms
for columns list SIZE N | REPEAT | AUTO |SKEWONLY:统计指定列的histograms.N的取值范围[1,254];REPEAT上次统计过的histograms;AUTO由oracle决定N的大小;SKEWONLY multipleend-points with the same value which is what we define by there isskew in thedata
degree:决定并行度.默认值为null.
granularity:Granularity of statisticsto collect ,only pertinent if the table is partitioned.
cascade:是收集索引的信息.默认为FALSE.
stattab:指定要存储统计信息的表,statid如果多个表的统计信息存储在同一个stattab中用于进行区分.statown存储统计信息表的拥有者.以上三个参数若不指定,统计信息会直接更新到数据字典.
no_invalidate: Does not invalidate thedependent cursors if set to TRUE. The procedure invalidates thedependent cursors immediately if set to FALSE.
force:即使表锁住了也收集统计信息.
1、首先创建一个分析表,该表是用来保存之前的分析值:
SQL begin
2 dbms_stats.create_stat_table(ownname= TEST ,stattab= STAT_TABLE );
3 end;
4 /
PL/SQL 过程已成功完成。
SQL begin
2 dbms_stats.gather_table_stats(ownname= TEST ,tabname= T1 );
3 end;
4 /
PL/SQL 过程已成功完成。
2、导出表分析信息到stat_table中
SQL begin
2 dbms_stats.export_table_stats(ownname= TEST ,tabname= T1 ,stattab= STAT_TABLE );
3 end;
4 /
PL/SQL 过程已成功完成。
SQL select count(*) from TEST.STAT_TABLE;
COUNT(*)
-
4
4、删除分析信息
SQL begin
2 dbms_stats.delete_table_stats(ownname= TEST ,tabname= T1 );
3 end;
4 /
PL/SQL 过程已成功完成。
SQL SELECT num_rows,blocks,empty_blocks as empty, avg_space, chain_cnt, avg_row_len FROM dba_tables WHERE owner = TEST
AND table_name = T1
NUM_ROWS BLOCKS EMPTY AVG_SPACE CHAIN_CNT AVG_ROW_LEN
- - - - -
没有查到分析数据
5、导入分析信息
SQL begin
2 dbms_stats.import_table_stats(ownname= TEST ,tabname= T1 ,stattab= STAT_TABLE );
3 end;
4 /
PL/SQL 过程已成功完成。
SQL SELECT num_rows,blocks,empty_blocks as empty, avg_space, chain_cnt, avg_row_len FROM dba_tables WHERE owner = TEST
AND table_name = T1
NUM_ROWS BLOCKS EMPTY AVG_SPACE CHAIN_CNT AVG_ROW_LEN
- - - - -
1000 5 0 0 0 16
可以查到分析数据
补充:
EXPORT_COLUMN_STATS:导出列的分析信息
EXPORT_INDEX_STATS:导出索引分析信息
EXPORT_SYSTEM_STATS:导出系统分析信息
EXPORT_TABLE_STATS:导出表分析信息
EXPORT_SCHEMA_STATS:导出方案分析信息
EXPORT_DATABASE_STATS:导出数据库分析信息
IMPORT_COLUMN_STATS:导入列分析信息
IMPORT_INDEX_STATS:导入索引分析信息
IMPORT_SYSTEM_STATS:导入系统分析信息
IMPORT_TABLE_STATS:导入表分析信息
IMPORT_SCHEMA_STATS:导入方案分析信息
IMPORT_DATABASE_STATS:导入数据库分析信息
GATHER_INDEX_STATS:分析索引信息
GATHER_TABLE_STATS:分析表信息,当cascade为true时,分析表、列(索引)信息
GATHER_SCHEMA_STATS:分析方案信息
GATHER_DATABASE_STATS:分析数据库信息
GATHER_SYSTEM_STATS:分析系统信息
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/7244.html
服务器部署程序员系统优化网站设置运维相关文章
- Spring Cloud Alibaba实战派作者,告诉你程序员如何破解35岁危机?
- 程序员必知的IT网站--让你未来不迷茫
- 程序员从佩洛西窜访事件中可以学到什么?
- Linux下查看tomcat版本详解程序员
- linux 添加、删除 route详解程序员
- Docker的daemon.json的作用详解程序员
- centos7 mysql安装详解程序员
- Nginx关闭默认站点/空主机头(禁止IP直接访问、防止域名恶意解析)详解程序员
- Linux-命令-cp,mkdir详解程序员
- Linux基础教程 linux下使用find命令根据系统时间查找文件用法详解程序员
- linux压缩和解压缩命令详解程序员
- 互联网敏捷 Scrum 和项目管理详解程序员
- 论敏捷开发的优缺点详解程序员
- redis学习(五):Set数据类型详解程序员
- 简单了解下OSI七层模型的作用以及常见网络协议含义和所用端口详解程序员
- 软件测试之linux基础详解程序员
- Linux下mysql数据库备份详解程序员
- 取消svn add详解程序员
- Ubuntu 14.04安装配置NFS服务器详解程序员
- Linux前后台进程切换详解程序员
- CentOS7中热插拔硬盘如何读取新的硬盘详解程序员
- Linux命令之chown详解程序员
- Git教程学习之标签管理详解程序员
- awk统计命令(求和、求平均、求最大值、求最小值)详解程序员
- Linux 查看进程详解程序员
- VI使用技巧详解程序员
- centos7 mysql 安装及设置远程访问详解程序员
- 动态网页项目无法启动详解程序员
- 深入数据库索引详解程序员
- informatica体系结构详解程序员
- 坏块详解程序员
- 马化腾与YouTube的故事详解程序员
- 国企程序员是一种怎样的体验详解编程语言