【12c】Oracle 统计信息搜集工具DBMS_STATS介绍「终于解决」

【12c】Oracle 统计信息搜集工具DBMS_STATS介绍「终于解决」可以使用Oracle内置的程序包DBMS_STATS来查看或修改搜集的数据库统计信息,本篇主要介绍GATHER_TABLE_STATS过程,通过该过程,可以搜集表和列(或索引)的统计信息。 1 语法

【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隐式确定哪些对象需要新的统计信息。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8218.html

(0)
上一篇 2023-03-05
下一篇 2023-03-05

相关推荐

  • Python查看包版本方法总结

    Python查看包版本方法总结在Python开发中,我们常常需要查询指定包的版本信息,以便保证程序的正常运行并及时更新维护。Python提供了多种查询包版本信息的方法,本文旨在总结这些方法,帮助初学者更好地处理包的版本问题。

    2024-05-09
    73
  • Python编程环境

    Python编程环境Python编程语言是一种高级的解释型编程语言,最初由Guido van Rossum在1989年开发,建立在C语言之上,旨在提供人类友好的编程语言。Python语言在过去的几十年中快速发展,并成为一种被广泛应用的编程语言。Python编程环境是使用Python编写代码所必需的软件环境。Python编程环境涵盖了一系列必要的工具和库,使得开发者可以高效地编写、测试并部署代码。随着Python语言的应用领域不断扩大,Python编程环境的重要性也在不断增加。

    2024-07-22
    36
  • 一周信创舆情观察(7.13~7.19)「终于解决」

    一周信创舆情观察(7.13~7.19)「终于解决」一、一周舆情要点 中国移动大规模采集国产数据库,自主可控数据库有望迎来全方位增长。中国移动此次预计采购1500套数据库产品及服务,金额在6000万元左右,中标候选人包括南大通用、人大金仓、阿里云、万…

    2023-03-25
    151
  • 入门Python:了解Python编程语言基础知识

    入门Python:了解Python编程语言基础知识Python是一种高级编程语言,具有简洁、易读、易学等优点。它被广泛应用于计算、数据分析、网络编程、Web开发、人工智能等领域。本文将介绍Python的基础知识,帮助初学者了解Python。

    2024-01-26
    96
  • Python字典用法解析——实现快速数据查找与存储

    Python字典用法解析——实现快速数据查找与存储Python中的字典是一种无序、可变、键值对结构的数据类型。与列表和元组相比,字典可以快速地通过键来查找和存储数据。字典的键和值可以是任意的Python对象,且字典可以支持高效的元素插入和删除操作。

    2024-02-29
    112
  • mysql查询字段值_查询所有数据库的SQL语法

    mysql查询字段值_查询所有数据库的SQL语法1、去除重复记录 去除重复记录(两行或两行以上记录中系列的上的数据都相同),例如emp表中sal字段就存在相同的记录。当只查询emp表的sal字段时,那么会出现重复记录,那么想去除重复记录,需要使用…

    2023-04-09
    157
  • sql面试宝典带答案吗_sql语句面试经典50题

    sql面试宝典带答案吗_sql语句面试经典50题一、试用SQL查询语句表达下列对教学数据库中三个基本表 S、SC 、C 的查询: S(sno,sname,SAGE,SSEX) 各字段表示学号,姓名,年龄,性别 Sc(sno,cno,grade) 各

    2023-03-12
    180
  • 使用PyCharm配置Python环境

    使用PyCharm配置Python环境Python 是一种高级语言,具有易于学习,可读性强等特点,被广泛使用于数据分析,人工智能等领域。PyCharm 是一个 python 集成开发环境,可以帮助开发者更加高效地进行程序开发。

    2024-07-29
    40

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注