电脑技术学习

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

dn001

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