暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
干货分享之DM7中统计信息的收集与使用
388
6页
10次
2020-04-06
免费下载
DM7 中统计信息的收集与使用
一、 什么是统计信息
统计信息主要是描述数据库中表、索引的大小、规模、数据分布状况等的一类信息。比如,
表的行数、块数、平均每行的大小索引的 leaf blocks索引字段的行数、不同值的大小等,
都属于统计信息CBO 正是根据这些统计信息数据,计算出不同访问路径、不同 join 方式
下,各种执行计划的成本,最后选择出成本最小的执行计划执行查询操作。
CBOCost-Based Optimization于代价的优化器;计算各种“可能”执行计划的“代价”
COST,从中选用 COST 最低的执行方案,作为实际运行方案。它依赖数据库对象的统计
信息,统计信息的准确与否会影响 CBO 出最优的选择。
二、 统计信息的基本内容
统计信息包含几个重要的宏观数据:
表所占的数据页数目
实际使用数据页数,
B 树的高度 (对于聚集索引表)
无论做不做统计信息收集表的当前记录数永远是有效的因为系统自动维护了表的记录总
数,这一点与大部分其 DBMS 系统有所差别。
另外,如果做了列级或者索引的收集,那么统计信息还包括下列信息:
COLID 列的ID
SQL_PL_TYPE 数据类型
N_TOTAL 总记录数
N_SAMPLE 采样记录数
N_DISTINCT 不同值数
N_NULL 空值数
V_MIN 最小值
V_MAX 最大值
BLEVEL B树的高度
N_LEAF_PAGES 叶子段的页数目
N_LEAF_USED_PAGES 叶子段实际使用的页数目
CLUSTER_FACTOR 聚集因子
CBO 依据这些信息对选择率和基数进行估算。
三、 统计信息的收集
DM7 收集统计信息有两种方法:一是通过一些存储过程来收集,二是用 DBMS_STATS 包来
收集。
存储过程,如:
对表上所有的索引生成统计信息:SP_TAB_INDEX_STAT_INIT
对库上所有模式下的所有用户表上的所有索引生成统计信息:SP_DB_STAT_INIT
对指定的索引生成统计信息:SP_INDEX_STAT_INIT
对指定的列生成统计信息,不支持大字段列:SP_COL_STAT_INIT
这里推荐使用 DBMS_STATS 包来收集,有别于存储过程,通过这个工具包收集可以指定
用率在数据分布极不均匀的情况下,提高统计信息的采用率,有助于提供更精确的统计
息。
使用DBMS_STATS首先得调用一个系统存储过程来创建这个包
SP_CREATE_SYSTEM_PACKAGES(1);
DBMS_STATS包里面常用的存储过程有:
1. COLUMN_STATS_SHOW
根据模式名,表名和列名获得该列的统计信息。
2. INDEX_STATS_SHOW
根据模式名,索引名获得该索引的统计信
of 6
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜