达梦数据库统计信息

本文介绍了数据库统计信息的重要性,包括表、列和索引的统计信息,这些信息用于优化查询执行计划。达梦数据库提供了DBMS_STAT包来管理统计信息,如收集、查看和删除。统计信息的更新对于成本估算和性能提升至关重要,不支持统计信息的对象包括外部表、离线表等。了解并正确维护统计信息能有效提升数据库性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

统计信息主要是描述数据库中表,索引的大小,规模,数据分布状况等的一类信息。比如,表的行数,块数,平均每行的大小,索引的高度、叶子节点数,索引字段的行数,不同值的大小等,都属于统计信息。
对象的统计信息是描述数据如何在数据库中存储的,统计信息是优化器的依据,可以帮助优化器精确估算成本,对执行计划的选择起到了重要的作用。

达梦统计信息分为三类:表统计信息,列统计信息,索引统计信息。
统计信息在生成的过程中分为三个步骤:
1、确定采样的数据(对象,分析数据,表,列,索引)
2、确定采样率:采样率与数据量成反比。
3、生成直方图(频率直方图,等高直方图)
统计信息对 cbo 的影响非常重大,因此我们要及时更新统计信息。

达梦提供了DBMS_STAT 包:收集统计信息,删除信息,查看信息。

  1. COLUMN_STATS_SHOW
    根据模式名,表名和列名获得该列的统计信息。返回两个结果集:一个是列的统计信息; 另一个是直方图的统计信息。
DBMS_STATS.COLUMN_STATS_SHOW('模式名','模式名','列名');
  1. TABLE_STATS_SHOW
    根据模式名,表名获得该表的统计信息。
DBMS_STATS.TABLE_STATS_SHOW('模式名','表名');
  1. INDEX_STATS_SHOW
    根据模式名,索引名获得该索引的统计信息。返回两个结果集:一个是索引的统计信息;另一个是直方图的统计信息。
DBMS_STATS.INDEX_STATS_SHOW('模式名','索引名');
  1. GATHER_TABLE_STATS
    根据设定的参数,收集表、表中的列和表上的索引的统计信息。其中,对于表,只搜集表的总行数、总的页数、已经使用的页数等基本信息。
DBMS_STATS.GATHER_TABLE_STATS('模式名','表名',NULL,100,TRUE,'FOR ALL COLUMNS SIZE AUTO')
  1. GATHER_INDEX_STATS
    根据设定的参数,收集索引的统计信息。
DBMS_STATS.GATHER_INDEX_STATS('模式名','索引名',NULL,100);
  1. GATHER_SCHEMA_STATS
    收集模式下对象的统计信息。
DBMS_STATS.GATHER_SCHEMA_STATS('模式名',100,TRUE,'FOR ALL COLUMNS SIZE AUTO');

以下对象不支持统计信息:
1、外部表,dblink 远程表,动态视图,临时表;
2、所在表空间为 offline 的对象;
3、位图索引,全文索引;
4、Blob image clog text 也不支持,自定义类型和空间类型也不支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值