ITPub博客

首页 > 数据库 > Oracle > 收集统计信息语句详解

收集统计信息语句详解

原创 Oracle 作者:zlingyi 时间:2015-10-22 16:50:16 0 删除 编辑
收集统计信息
exec DBMS_STATS.GATHER_TABLE_STATS(ownname=>'DBACCADM',tabname=>'CS_CUSTPREOPEN_INFO_CHG',estimate_percent=>10,method_opt=>'for all columns size 1',no_invalidate=>false,cascade=>true,degree => 10);

estimate_percent 指明是否采样收集统计信息,100等于NULL,表示不使用采样,移动工作中一般使用10,表示10%的采样。此值一般小于10。

block_sample 指明是否采用数据行采样或者数据块采样来收集统计信息,行采更精确,块采样更快速。

method_opt 不但指明是否收集直方图的统计信息还指明采样的最大桶数,9i默认值为 for all columns size 1,10g以后则默认为for all       columns size auto

no_invalidate 指明是否使与收集的对象相关的游标失败,9i以前默认值为false,10g以后则默认为dbms_stats.auto_invalidate

cascade  DBMS_STATS 默认不对索引进行Analyze,因为默认Cascade是False,需要手工指定为True

degree 表示并行,指明收集一个对象统计时所用的从属进程数量,默认为null

统计信息有以下几种收集
gather_database_stats 收集整个数据库的对象统计信息
gather_dictionary_stats 收集整个数据字典的对象统计信息
gather_fixed_objects_stats 收集整个数据字典里面的固定表的对象统计信息
gather_schema_stats 收集整个模式所有对象的对象统计信息
gather_table_stats 收集表(索引可选)统计信息
gather_index_stats 收集索引统计信息

execute dbms_stats.set_param(pname=>'CASCADE',pval=>'TRUE');
修改参数cascade的默认值为TRUE
execute dbms_output.put_line(dbms_stats.get_param(pname=>'CASCADE'));
查询参数cascade的默认值
显示为TRUE

11g开始统计信息开始自动维护了
涉及收集统计信息的命令dbms_stats,create index,alter index,analyze也会收集对象的统计信息

统计信息的默认保留日期为31天
select dbms_stats.get_stats_history_retention() as retention from dual;

dbms_stats.alter_stats_history_retention(retention =>14)

ora tstat tabname owner 
获取表的统计信息,包括分区名,行数、块数,大小,分析日期等

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

请登录后发表评论 登录
全部评论

注册时间:2014-12-22

  • 博文量
    76
  • 访问量
    117212