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