本文分析了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