达梦数据库-统计信息

千里之行始于足下,梦想不付之行动,终究是纸上谈兵

经过一段时间的达梦DCP培训让学习了好多支持点。让我对达梦的理解更加深刻。

今天为大家说一说达梦数据的统计信息

在介绍索引之前介绍一下统计信息 :因为添加索引的目的就是增强查询的效率。怎么去增强查询效率,数据库库会对表、列、索引会做一个统计信息。

对象统计信息描述数据是如何在数据库中存储的。统计信息是优化器的代价计算的依据,可以帮助优化器较精确地估算成本,对执行计划的选择起着至关重要的作用。

达梦的统计信息分为三类:表的统计信息、列的统计信息、索引的统计信息。

统计信息生成的过程分为三步:
1、确定采样的的数据:根据对象去分析数据 (表:计算表的行数、所占的页数目、平均记录长度、列:统计列数据的分布情况、索引:统计索引列的数据分布情况)

2、确定采样率:根据数据对象的大小,通过内部算法,确定数据的采样率。采样率与数据量成反比。

3、生成直方图:频率的直方图、等高直方图

查看统计信息

DBMS_STATS包 :收集统计信息,删除统计信息

1、column_stats_show 获取列的统计信息,返回列的统计信息,另一个时直方图的统计信息。
2、table_stats_show 获取表的统计信息。
3、index_stats_show 获取索引的统计信息。

GATHER_TABLE_STATS 收集表,表中的列,索引的统计信息其中对表:只手机表的总行数总页数,已经使用的页数等基本信息。
GATHER_INDEX_STATS 手机索引的统计信息。
GATHER_SCHEMA_STATS 收集模式下的对象统计信息。
DLETE_TABLE_STATS 删除表相关的统计信息。
DELETE_INDEX_STATS 删除索引的统计信息。
DELETE_COLUMN_STATS 删除列的统计信息。
UPDATE_ALL_STATS 更新统计信息。
CONVERT_RAW_VALUE 删除列的统计信息。

那些对象不支持统计信息:
1、外部表、DBLINK远程表 、动态视图表、临时表。
2、所在表空间为OFFLINE的对象。
3、位图索引、全文索引
4、数据类型:blob image clob text… 也不支持 自定义类型和空间类型也不支持。

第一次使用这DBMS_STATS包需要初始化一下。
sp_create_system_packages(1,'DBMS_STATS')
sp_create_system_packages(1,'DBMS_STATS'); --初始化系统包DBMS_STATS

CREATE TABLE TEST.T5 (ID INT,NAME VARCHAR(20));--创建一张表 写入数据来获取它的统计信息。

BEGIN
FOR I IN 1..999 LOOP
INSERT INTO TEST.T5 VALUES(I,'AAA'||I);
END LOOP;
commit;
END;  ---插入数据到表T5中

BEGIN
DBMS_STATS.table_stats_show('TEST','T5');
END  --使用 table_stats_show    获取表的统计信息。TEST时模式名 T5是表名  发现结果为空。


BEGIN
DBMS_STATS.GATHER_TABLE_STATS('TEST','T5') ;
END  --使用 GATHER_TABLE_STATS 来收集T5这张表的统计信息。

/*
NUM_ROWS 记录表的行数
LEAF_BLCOKS 记录表的总页数
LEAF_USED_BLOCKS 已经使用的页数
*/

–注意:更新统计信息需要在业务低谷的时候去操作。因为在高峰操作可能导致业务瘫痪。

–收集统计信息或更新统计信息。是对索引有更好的执行计划。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值