- 论坛徽章:
- 0
|
有一个表test,
字段:
d_id int
o_id int,
p_time datetime,
reason int,
result int
key int
有3百万记录,现在其上创建一个聚集索引clus_indx,索引键(d_id,o_id)
计算步骤:
1.数据纪录长度
4
+ (8×1+5×4): 所有固定长度列字节数
――――――――――――――――――――――
=32
2.数据页数
floor(8160/32)=255
celling(3000000/255)=11764
3. 聚集索引记录大小
5
+ 8 (固定长度索引键的总字节数)
――――――――――――――――――
= 13
4. 聚集索引页数
floor(8160/13)-2=625 :大于256,所以以下使用256条记录/每页
索引树1 级 celling(11764/256)=46
索引树0 级 celling(46/256) =1
索引页总数
索引树1 级 46 +
索引树0 级 1
--------------------------------------------------
47
分配开销
索引的OAM页数=1
总页数
聚集索引页数 47 +
OAM页数 1
―――――――――――――――――――――――――――
48
聚集索引总字节:
48×8K=384K
根据以上按照SYBASE提供的计算公式得出该索引大小应为:384k
但索引创建后,使用sp_spaceused,显示索引只有8K大小:
index_name size reserved unused
---------------- ---------- --------- ----------
clus_indx 8 KB 462712 KB 232 KB
tablename rowtotal reserved data index_size unused
------- ----------- ------------- --------- --------- -------
test 3000000 462712 KB 462472 KB 8 KB 232 KB
该索引的fillfactor为默认值0,max_per_page=0
这是为何?
请熟悉的兄弟帮忙解释一下 |
|