IDS计算表的最大区段(extent)数
1.通过oncheck -pt 获取的物理地址.<99 :/opt/informix>oncheck -pt dbmon:alerts
TBLspace Report for dbmon:informix.alerts
Physical Address 5:30 --所需的物理地址.
Creation date 08/01/2008 15:27:54
TBLspace Flags 802 Row Locking
TBLspace use 4 bit bit-maps
Maximum row size 140
Number of special columns 0
Number of keys 0
Number of extents 15 --已有的extents数..
Current serial value 1
2.转换物理地址为 16 进制数.
在这里使用数据库自带的hex来转换..
<100 :/opt/informix>dbaccess sysmaster -
Database selected.
> select hex(5),hex(30) from systables where tabid="1";
(constant) (constant)
0x00000005 0x0000001E
1 row(s) retrieved.
3.通过onchek -pP 来获取frcnt. (此操作须用informix操作.)
<101 :/opt/informix>oncheck -pP 0x00000005 0x0000001E
addr stamp chksum nslots flag type frptr frcnt next prev
5:30 821864040 968f 5 2 PARTN 276 1748 0 0
slot ptr len flg
1 24 92 0
2 116 32 0
3 148 0 0
4 148 0 0
5 148 128 0
4.则现在可以计算 还可增加的extent的数,最大区段数.
可增加区段数=trunc ( frcnt / 8 )= trunc (1748 / 8 )= 218
最大区段数 = 可增加区段数 + 已有区段数 = 218 + 15 = 233
注:参考informix性能指南.
[ 本帖最后由 liaosnet 于 2008-9-10 17:22 编辑 ] frcnt/8 中8由什么决定
回复 #2 xmwinforever 的帖子
本帖最后由 liaosnet 于 2012-08-02 21:44 编辑:em17: :em17: 具体8指啥意思不清楚..
做了个测试..发现表增加一个extents, frcnt都减8....:em17:
Modify 2012-08-02
-------------------
frcnt/8 的原因是 每8字节描述一个区段~ 如果一张表有多个索引的怎么办了?
页:
[1]