暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB T 手动收集统计信息ANALYZE、DBMS_STATS.GATHER_TABLE_STATS

原创 章芋文 2019-09-26
1963

数据库提供了ANALYZE语句和DBMS_STATS高级包收集统计信息,例如:收集有关表及其索引的对象属性的统计信息。

当表中数据发生较大变化时,之前的统计信息可能不准确,用户需要重新收集该表的统计信息。数据库提供了ADM_TAB_MODIFICATIONS和MY_TAB_MODIFICATIONS视图用来监测当前某表的修改次数(主要包括插,入,删除,更新),用户可以通过查看该视图来决定是否重新进行统计信息收集。

注意事项

ANALYZE/DBMS_STATS.GATHER_TABLE_STATS支持收集临时表的统计信息,临时表的统计信息收集后均为0。

无法计算或估计以下列类型的统计信息:LOB列类型(不分析LOB列类型,直接跳过),LONG列类型或对象类型。

ANALYZE/DBMS_STATS.GATHER_TABLE_STATS支持收集分区表的统计信息。

DBMS_STATS高级包支持收集所有列的统计信息,也支持只收集索引列的统计信息。但ANALYZE不支持单独收集索引的统计信息功能,如果使用ANALYZE收集表的统计信息,索引的统计信息会一起被收集。

收集表的统计信息

数据库提供收集表的以下统计信息的功能。表统计信息显示在数据字典视图MY_TABLES,DB_TABLES和ADM_TABLES中。

行数(NUM_ROWS)

*高水位线以下的数据块数 - 已格式化为接收数据的数据块数,无论它们当前是否包含数据或为空(BLOCKS)

*分配给从未使用过的表的数据块数(EMPTY_BLOCKS)

平均行长度,包括行开销,以字节为单位(AVG_ROW_LEN)

注:标有星号的统计数据是精确计算值。

索引统计信息

数据库提供收集索引的统计信息。对于常规索引,在计算或估计统计信息时,统计信息将显示在数据字典视图SYS_INDEXES、SYS_INDEX_PARTS、SYS_INDEX_PARTS、MY_INDEXES、DB_INDEXES和ADM_INDEXES中。。

详细信息请参考《GaussDB 100 V300R001C00数据库参考信息(单机)》中的“数据字典和视图”。

*索引从其根块到其叶块的深度(BLEVEL)

叶块数(LEAF_BLOCKS)

不同索引值的数量(DISTINCT_KEYS)

每个索引值的平均叶块数(AVG_LEAF_BLOCKS_PER_KEY)

每个索引值的平均数据块数(对于表上的索引)(AVG_DATA_BLOCKS_PER_KEY)

聚类因子(行与索引值的排序顺序)(CLUFAC)

在两个以上字段所建立索引的前两个字段组合索引的唯一键值数量(COMB_COLS_2_NDV)。

在三个以上字段所建立索引的前三个字段组合索引的唯一键值数量(COMB_COLS_3_NDV)。

在四个以上字段所建立索引的前四个字段组合索引的唯一键值数量(COMB_COLS_4_NDV)。

注:标有星号的统计数据是精确计算值。

列的统计信息

直方图是一种特殊类型的列统计信息,它提供有关表列中数据分布的更多详细信息。直方图将值分类为“桶”,每个桶中存放一定范围的值。

基于不同值的数量和数据的分布,数据库选择要创建的直方图的类型。 直方图的类型如下:

等频直方图:在等频直方图中,每个不同的列值对应直方图的单个桶,因为每个值都有自己的专用存储桶,所以某些存储桶可能有很多值,而其他存储桶很少。

等高直方图:在等高直方图中,列值被平均分成桶,每个桶包含大致相同的行数。

列的统计信息会随表一起收集。数据库通过列的不同值数量来确定要创建的直方图类型,如果不同值数量小于254,会生成等频直方图,否则生成等高直方图。

更新删除统计

可以使用DBMS_STATS.DELETE_TABLE_STATS/DBMS_STATS.DELETE_SCHEMA_STATS来删除表的统计信息。

重复执行ANALYZE/DBMS_STATS.GATHER_TABLE_STATS会清空上一次的统计信息,并产生新的统计信息。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论