统计更新---update statistics

update statistics high|medium  中有两个资源:数据分布和准确分辨率。

数据分布:

数据分布过程是对一列或多列中的实际数据抽样,然后编入一系列Informix所谓的箱子(bulket)中。对于抽样数据所用的箱子有一个固定的数目。箱子数目和每个箱子所包含的准确数据范围都取决于为准确分辨而输入的值。

查看命令:dbschema -d dbname -hd tabname 

如下图表示有若干个箱子,其中第4个箱子中共有1000行(第一个1000表示),该箱子有1000个不同的数值(第二个1000表示),该箱子中最大的值4000。

在overflow部分有两列,第一列是该值在数据集中出现的次数;第二个列表示这个数值本身。

Distribution for informix.tab4.id

Constructed on 2019-04-20 22:20:38.00000

High Mode, 0.500000 Resolution
--- DISTRIBUTION ---

      (                             1)
   1: (   1000,    1000,         1000)
   2: (   1000,    1000,         2000)
   3: (   1000,    1000,         3000)
   4: (   1000,    1000,         4000)
   5: (   1000,    1000,         5000)
   6: (   1000,    1000,         6000)
   7: (   1000,    1000,         7000)

。。。。。

--- OVERFLOW ---

 1: ( 200000,          aaaaaaaaaaaaaaaaaaaa )

数据分辨率:update statistics 中的resolutions选项决定所产生的分布箱数目和箱中数据的准确范围。resolutions选项输入的值代表你希望每个箱子包含数据集的百分比。resolutions参数的范围是10~0.005,默认是0.05(意味着每个箱子中数据的条数=表中的总条数*0.5%)。换言之,如果resolutions的值变小,每个箱子中的记录条数就会变小,箱子的数量就会增加,优化器在使用他们的的时候会更高效。

统计更新模式:

在high模式下,分布式是在所有行都被读过,并且它们的值已排序之后才产生的。任何高度重复的值都被推出,并标记为溢出值,其他值则按照预期的分辨率而分入各分布箱。因此这些统计更新将非常准确。

在medium模式下,所有行都被读过,但随后用各行的随机样本来产生数据分布信息。

可以设置环境变量:export DBUPSPACE=5000;单位KB。该变量确定生成分布时扫描一遍数据所能使用的资源。这个变量确定引擎在产生分布时排序和链接所需的磁盘空间。

如果不输入resolutions的值,你可以取定一个cofidence值以约束该过程。cofidence值会影响用于产生分布的随机样本的大小,值的范围是0.8~0.95。这个值表示的是这个分布和用update statistics high产生的分布的相似程度。

举例:

update statistics medium for table tab_name(colname) resolutions 10 .80

统计更新的习惯性做法:

1、在一个索引或基于索引的约束的第一个列上使用high模式;

2、在任何作为连接列频繁使用的非“主”列和一个“=”条件左侧的列上使用high模式;

3、查询条件中不常用的其他各列用medium模式;

4、少于1000行的表用low;

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

请叫我曾阿牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值