我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【12c】Oracle 统计信息搜集工具DBMS_STATS介绍

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【12c】Oracle 统计信息搜集工具DBMS_STATS介绍

【12c】Oracle 统计信息搜集工具DBMS_STATS介绍

可以使用Oracle内置的程序包DBMS_STATS来查看或修改搜集的数据库统计信息,本篇主要介绍GATHER_TABLE_STATS过程,通过该过程,可以搜集表和列(或索引)的统计信息。

1 语法

dbms_stats.gather_table_stats(ownname varchar2,

tabname varchar2,

partname varchar2 default null,

estimate_percent number default default_estimate_percent,

block_sample boolean default false,

method_opt varchar2 default default_method_opt,

degree number default default_degree_value,

granularity varchar2 default default_granularity,

cascade boolean default default_cascade,

stattab varchar2 default null,

statid varchar2 default null,

statown varchar2 default null,

no_invalidate boolean default to_no_invalidate_type(get_param("NO_INVALIDATE")),

stattype varchar2 default "DATA",

force boolean default false,

-- the context is intended for internal use only.

context dbms_stats.ccontext default null,

options varchar2 default default_options);

标红的是比较常用的参数。

2 参数说明

重点介绍下面几个参数。

2.1 method_opt

method_opt对应的值有如下两者或者两者的结合,默认值是FOR ALL COLUMNS SIZE AUTO:

  • FOR ALL [ INDEXED | HIDDEN ] COLUMNS [size_clause]
  • FOR COLUMNS [column_clause] [size_clause]

size_clause := SIZE {integer | REPEAT | AUTO | SKEWONLY}

column_clause := column_name | extension name | extension

其中,

  • integer:表示直方图桶的数目,必须在1-2048范围内;
  • REPEAT:仅在已经具有直方图的列上收集直方图;
  • AUTO:Oracle根据数据分布和列的工作负责确定要收集直方图的列;
  • SKEWONLY:Oracle根据列的数据分布确定要收集直方图的列;
  • column_name:列名;
  • extension:可以是列组,格式为(column_name,column_name ....),也可以是表达式;

2.2 degree

该参数设置并行度,默认是NULL,意味着使用建表时默认设置的并行度,通过设置并行度,可以提高执行的效率。

2.3 granularity

该参数设置要收集的统计信息的粒度(只在分区表时使用)。值包含:

  • ALL:收集所有(子分区、分区、全局)的统计信息;
  • APPROX_GLOBAL AND PARTITION:和GLOBAL AND PARTITION相似,但是在这种情况下,全局统计信息是从分区级统计信息聚合而来的,此选项将聚合除列的不同值数和索引的不同键值之外的所有统计信息;
  • AUTO:默认值,基于分区的类型决定分区的粒度;
  • DEFAULT:收集全局和分区级别的统计信息,该选项已过期;
  • GLOBAL:收集全局统计信息;
  • GLOBAL AND PARTITION:收集全局和分区级别的统计信息,不收集子分区统计信息;
  • PARTITION:收集分区级别的统计信息;
  • SUBPARTITION:收集子分区级别的统计信息。

对于分区表,建议设置该参数值为ALL。

2.4 cascade

该参数在收集表的统计信息的同时,也会收集索引统计信息,使用此选项等效于运行GATHER_INDEX_STATS过程。

2.5 no_invalidate

该参数值若设为TRUE,则与该表相关联的游标不会失效,设置为FALSE,则会使对应的游标立即失效,在大批量数据操作,重新收集统计信息时,建议将该参数设置为FALSE,避免因为收集了统计信息,从而使原来的SQL选择错误的执行计划。

2.6 options

该参数值进一步说明哪些对象收集统计信息,参数值包含:

  • GATHER:在所有对象上收集统计信息;
  • GATHER AUTO:自动收集所有必要的统计信息,由Oracle隐式确定哪些对象需要新的统计信息。

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【12c】Oracle 统计信息搜集工具DBMS_STATS介绍

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

【12c】Oracle 统计信息搜集工具DBMS_STATS介绍

可以使用Oracle内置的程序包DBMS_STATS来查看或修改搜集的数据库统计信息,本篇主要介绍GATHER_TABLE_STATS过程,通过该过程,可以搜集表和列(或索引)的统计信息。1 语法dbms_stats.gather_table_stats(ow
【12c】Oracle 统计信息搜集工具DBMS_STATS介绍
2021-02-26

编程热搜

目录