书上说,创建聚集索引,所需磁盘空间约是数据表实际容量的1.2倍,我尝试求证测试了一下得到一些数据,好像不对,哪位大侠抽空帮解释一下?
书上说,创建聚集索引,所需磁盘空间约是数据表实际容量的1.2倍,我尝试求证测试了一下得到一些数据,好像不对,哪位大侠抽空帮解释一下?
按书上的方法,我使用sp_spaceused存储过程来查看表的空间占用情况.
exec sp_spaceused 供应商
以下是我测试得到的一些数据:
说明 Name rows reserved data index_size unused
--------- --------------------------------------------------------------
建聚集索引前: 供应商 830 136KB 104KB 8KB 24KB
建聚集索引后: 供应商 830 128KB 104KB 16KB 8KB
这样看来,表实际大小104KB*1.2,它怎么着也等于不了16KB....?有点迷糊了..
后改用一张大一点的表进行测试:
说明 Name rows reserved data index_size unused
--------- --------------------------------------------------------------
建聚集索引前: 订单明细 53454 6856KB 6536KB 8KB 48KB
建聚集索引后: 订单明细 53454 6592KB 6536KB 32KB 24KB
依然如故,算法好像还是不能成立.
看着测试得到的数据,我实在不明白是怎么回事:
1.那个1.2倍究竟是个什么回事,在以上数据上是怎么表达出来的?
2.建立聚集索引前后,为何reserved会发生变化(如第1个测试中,由136KB变为了128kB)
请各位大侠发表一下意见,以供虚心学习为谢!
问题点数:20、回复次数:8Top
1 楼luoqun_ncs(暂时冰封)回复于 2006-04-01 20:38:00 得分 0
如果你的聚簇索引键值只有2种值, 那么索引页只有两条记录.所以并不是严格的1.2倍Top
2 楼zjcxc(邹建)回复于 2006-04-01 20:52:15 得分 10
1. 1.2倍只是推算值, 不是精确值
2. 看大小是 data+index_size , 而不是单纯的 dataTop
3 楼wwh999(印钞机V2.0...开发中....)回复于 2006-04-03 08:54:17 得分 0
luoqun_ncs(暂时冰封) ,首先谢谢你的回复
如果你的聚簇索引键值只有2种值, 那么索引页只有两条记录.所以并不是严格的1.2倍
-----------------------------------------------------------------------------------
我的聚簇索引,键集是数据型自动增长值(如1、2、3、4....)啊,
但是这样怎样算,也不至于像...104KB*1.2=16KB ..???啊..
Top
4 楼wwh999(印钞机V2.0...开发中....)回复于 2006-04-03 09:00:05 得分 0
zjcxc(邹建) 谢谢回复
在你的回复中:
1.2倍只是推算值, 不是精确值
---------------------------------------------------
正如上面所说的,Data占104KB,104*1.2 与16K无论如何都划不了等号....???
而且,我观察了很多个表的聚簇索引,有的表比较大,占8000KB、15000KB,可是索引敢就占几十个KB...
是不是书上说,创建聚集索引,所需磁盘空间约是数据表实际容量的1.2倍,这个是有问题的???
是否,按被创建聚簇索引的字段中项目的总数所占用的大小的1.2倍啊?是不是啊?Top
5 楼tangchao515(梦回唐朝)回复于 2006-04-03 09:08:54 得分 10
是数据加索引占用的空间是原来的1.2倍,这只是个大概数字。Top
6 楼jixiaojie(太多借口)回复于 2006-04-03 09:19:58 得分 0
upTop
7 楼wwh999(印钞机V2.0...开发中....)回复于 2006-04-03 11:59:24 得分 0
tangchao515(梦回唐朝) 写道:
是数据加索引占用的空间是原来的1.2倍,这只是个大概数字。
---------------------------------------------------------------------------
是这样的吗?Top
8 楼wwh999(印钞机V2.0...开发中....)回复于 2006-04-03 15:57:53 得分 0
自己顶一下。Top




