2008年7月19日星期六

分析Sybase的数据空间占用为何如此之大

本文分析了Sybase数据空间占用为何如此之大。

硬件环境:win2k+sybase12.5.2

具体操作:

我的建表SQL如下:



CREATE TABLE PHONE_INFO
(
PHONENO CHAR(8) NOT NULL ,
TYPE CHAR(1),
PRIMARY KEY (PHONENO)
)
go

要导入500W数据,原来的文本文件只有61MB

例如:

88888888|1|

........

问题:导入后发现占用空间增长很大,原来备份只有500MB左右,但现在备份的文件是4.5GB。

解决方法一:

表是不是是用了行锁,可以用dbcc reorg来回收空间,相当windows的碎片整理。

解决方法二:

先测试:



sp_spaceused
go
sp_spaceused PHONE_INFO
go

看看是不是都是这个表占的空间?这个库里还有什么其他表呢?

解决方法三:



insert into TEMP_PHONE_INFO
SELECT * FROM PHONE_INFO
GO
sp_rename TEMP_PHONE_INFO,PHONE_INFO

没有评论: