Oracle数据库入门之Oracle统计信息
沉沙 2019-01-08 来源 : 阅读 1930 评论 0

摘要:本篇教程探讨了Oracle数据库入门之Oracle统计信息,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

本篇教程探讨了Oracle数据库入门之Oracle统计信息,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

Oracle数据库入门之Oracle统计信息

<

Oracle数据库中的统计信息是这样一组数据:它存储在数据字典中,且从多个维度描述了Oracle数据库里对象的详细信息。 CBO会利用这些统计信息来计算目标SQL各种可能的,不同的执行路径的成本,从中选择一条成本最小的执行路径来作为目标SQL的执行计划。
统计信息分为以下六种:
表的统计信息
索引的统计信息
列的统计信息
系统统计信息
数据字典统计信息
内部对象统计信息:用于描述Oracle数据库里的一些内部表(如X$系列表)的详细信息。
收集统计信息
通常有两种方法

    使用Analyze命令
    使用DBMS_STATS包
    表、索引、列、数据字典 的统计信息 这两种方法都可收集。 系统统计信息和系统内部对象统计信息只能使用DBMS_STATS包

Analyze命令用法

    以计算模式: analyze table abc compute statistics for table; 会扫描目标对象的所有数据,所以统计结果和实际结果相匹配。
    以估算模式: analyze table abc estimate statistics sample 15 percent for table; 估算模式,估算结果和实际结果不一定完全匹配

DBMS_STATS包用法

    GATHER_TABLE_STATS 用于收集目标表、目标表列和目标表上的索引统计信息
    GATHER_INDEX_STATS 用于收集指定索引的统计信息
    GATHER_SCHEMA_STATS 用于收集指定schema下所有对象的统计信息

    GATHER_DATABASE_STATS 用于收集全库所有对象的统计信息

    估算模式 exec dbms_stats.gather_table_stats(ownname=>'scott' , tabname=>'T2' , estimate_percent=>15 , method_opt=>'FOR TABLE' , cascade=>false);
    计算模式 exec dbms_stats.gather_table_stats(ownname=>'scott' , tabname=>'T2' , estimate_percent=>100, method_opt=>'FOR TABLE' , cascade=>false); 或者 exec dbms_stats.gather_table_stats(ownname=>'scott' , tabname=>'T2' , estimate_percent=>NULL, method_opt=>'FOR TABLE' , cascade=>false);

Analyze和DBMS_STATS区别

    Analyze命令不能正确地收集分区表的统计信息,而DBMS_STATS包却可以。
    Analyze命令不能并行收集统计信息,而DBMS_STATS包却可以。
    DBMS_STATS包的并行收集是通过手工指定输入参数 DEGREE 来实现的,如对表 T1 并行收集统计信息,同时指定并行度为4:exec dbms_stats.gather_table_stats(ownname=>'scott' , tabname=>'T1' , estimate_percent=>NULL, method_opt=>'FOR TABLE' , cascade=>true , degree=>4);
    DBMS_STATS包的缺陷是只能收集CBO相关统计信息,不能收集CBO无关的一些额外信息,Analyze却可以。
   

本文由职坐标整理发布,学习更多的相关知识,请关注职坐标IT知识库!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程