liaosnet 发表于 2008-09-10 17:20

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 编辑 ]

xmwinforever 发表于 2008-09-11 10:54

frcnt/8 中8由什么决定

liaosnet 发表于 2008-09-11 14:38

回复 #2 xmwinforever 的帖子

本帖最后由 liaosnet 于 2012-08-02 21:44 编辑

:em17: :em17: 具体8指啥意思不清楚..
做了个测试..发现表增加一个extents, frcnt都减8....:em17:


Modify 2012-08-02
-------------------
frcnt/8 的原因是 每8字节描述一个区段~

philein 发表于 2012-08-02 18:26

如果一张表有多个索引的怎么办了?
页: [1]
查看完整版本: IDS计算表的最大区段(extent)数