5.2 Oracle里收集与查看统计信息的方法 《基于Oracle的优化(学习笔记)》

收集统计信息有两种方法:一是通过analyze命令,一是通过dbms_stats包

 

使用analyze收集统计信息的方法

删除索引的统计信息

analyze index index_name delete statistics;

 

以估算的模式,采样的比例15%收集统计信息

analyze table table_name estimate statistics sample 15 percent for table;

 

以计算模式收集统计信息

analyze table table_name compute statistics for table;

 

对列以计算模式收集统计信息

analyze table table_name compute statistics for columns column_name1,column_name2;

 

以计算模式对表和列收集统计信息

analyze table table_name compute statistics for table for columns column_name1,column_name2;

 

以计算模式收集索引的统计信息

analyze index index_name compute statistics;

 

删除表、列和索引的统计信息

analyze table table_name delete statistics;

 

一次性收集表、所有列和索引的统计信息

analyze table table_name compute statistics;

 

 

使用dbms_stats收集统计信息的方法

 

dbms_stats做常用的四个存储过程:

gather_table_stats:用于收集表、列和索引的统计信息。

gather_index_stats:用于收集索引的统计信息。

gather_schema_stats:用于收集指定schema下的所有对象的统计信息。

gather_database_stats:用于全数据库的所有对象的统计信息。

 

analyze命令可以做到只收集列而不收集表的统计信息,而dbms_stats做不到这一点。

 

删除表、列和索引的统计信息

dbms_stats.delete_table_stats(ownname='>SCOTT',tabname=>'T2')

 

一次性收集表、列和索引的统计信息

dbms_stats.gather_table_stats(ownname=>'SCHEMA_NAME',tabname=>'TABLE_NAME',esmite_percent=>100,cascade=true);

 

analyze和dbms_stats的区别

1.analyze不能收集分区表的统计信息,而dbms_stats可以

2.analyze不能并行收集统计信息,而dbms_stats可以

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值