糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > [Oracle] 统计信息和dbms_stats包

[Oracle] 统计信息和dbms_stats包

时间:2021-10-21 06:43:55

相关推荐

[Oracle] 统计信息和dbms_stats包

数据库|mysql教程

Oracle统计信息,dbms_stats包,[Oracle

数据库-mysql教程

动易cms模板源码,vscode中插件下载,ubuntu系统最低,tomcat启动未报错,sqlite制作数据库,图爬虫安卓破解版下载,loop 循环 php,徐州seo网络推广定制,ICO网站模板,网站模板建站教程lzw

Oracle基于CBO的优化器在生成执行计划时,很大程度上依赖于统计信息,你可以把CBO理解为一个复杂的数学模型,而统计信息是它最主

化妆培训源码,ubuntu硬盘什么格式,tomcat启动应用不启动,爬虫天气引言,php商城开发思路,seo技术教学课程seo博客lzw

e4a表白软件源码,vscode 函数注释,ubuntu tuna,tomcat插件依赖,sqlite下载和安装,wp个人资料插件,能替代excel的前端框架,爬虫方式什么意思,php xml post,大亚湾推广seo费用,商城网站 开源系统源码,网页编辑器软件,登录的html模板lzw

1、统计信息的作用

Oracle基于CBO的优化器在生成执行计划时,很大程度上依赖于统计信息,你可以把CBO理解为一个复杂的数学模型,而统计信息是它最主要的输入,执行计划是输出,如果输入都不准确,输出还可能准确吗?所有,统计信息是否及时有效对执行计划的好坏有着关键的影响。

2、dbms_stats包

Oracle里采用dbms_stats包分析统计信息(Analyze命令已过时,不建议使用),该包的使用方法,官方文档有详细说明,这里挑几个最常用的说说。

1)gather_table_stats

DBMS_STATS.GATHER_TABLE_STATS (

ownname VARCHAR2,

tabname VARCHAR2,

partname VARCHAR2 DEFAULT NULL,

estimate_percent NUMBER DEFAULT NULL,

block_sample BOOLEAN DEFAULT FALSE,

method_opt VARCHAR2 DEFAULT ‘FOR ALL COLUMNS SIZE

1′,

degree NUMBER DEFAULT NULL,

granularity VARCHAR2 DEFAULT ‘DEFAULT’,

cascade BOOLEAN DEFAULT FALSE,

stattab VARCHAR2 DEFAULT NULL,

statid VARCHAR2 DEFAULT NULL,

statown VARCHAR2 DEFAULT NULL,

no_invalidate BOOLEAN DEFAULT FALSE);

这个包最常用,它是对表收集统计信息,语法如上所示,,它的关键参数如下:

method_opt (直方图histogram选项)

先说说什么是直方图,直方图是对列上的数据分布进行统计,让优化器知道数据在各个列上的分布情况,如果数据在某列上的分布很倾斜,则最好对该列收集直方图信息。

method_opt有如下选项:

for all columns -> 统计该表所有列的直方图

for all indexed columns -> 统计该表上定义索引列的直方图

for columns SIZE | REPEAT | AUTO | SKEWONLY:

示例1:在表t上收集统计信息,但不收集直方图:

exec dbms_stats.gather_table_stats(user,’t’,method_opt=>’for all columns size 1′);

示例2:以最大桶数收集直方图:

exec dbms_stats.gather_table_stats(user, ‘t’, method_opt=>’for all columns size 254′);

granularity (统计信息收集的粒度,针对分区表)

该参数主要针对分区表,分区表有以下三种类型的统计信息

cascade (是否同时收集索引的统计信息)

该值为true等同于在该表上所有的索引上执行gather_index_stats。

如果觉得《[Oracle] 统计信息和dbms_stats包》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。