光影工作室

sql2000如何完美压缩.mdf文件

发布时间:5年前热度: 2771 ℃评论数:

1.首先你要找到你的数据库最大的表,一般是数目最大的表

create table tmp (name varchar(50),rows int,reserved varchar(50),data varchar(50),index_size varchar(50),unused varchar(50))insert into tmp (name,rows,reserved,data,index_size,unused) exec sp_msforeachTable @Command1=”sp_spaceused ‘?'”–sp_spaceused ‘t_vehicle’
select * from tmp order by data desc
drop table tmp

2.复制你的转移旧表的数据到新表;

SELECT * INTO 新表 FROM 旧表

(如果你数据比较多,可能你会看到待压缩的数据库对应的mdf和ldf文件大小在猛增,没事在复制表)

注:此命令不能把数据库结结构完全复制,需要您重新把旧表与新表对应的主键,自动增长值,索引,默认值等修改。

3.更新一下;

DBCC UPDATEUSAGE (0)

4.把旧表删除,然后把新表的名字改成旧表的名字,这些可以到企业管理器里操作(注意重命名名时的提示);

5.收缩mdf文件,也是最想要实现的一步;

(1)输入:select * from sysfiles 执行,可以看到下面的内容,记住其中的fileid字段的内容,也就是1或2,标识数据库的数据文件或日志文件,下面的命令要用到这里的值。

DBCC SHRINKDATABASE(‘库名’)

DBCC shrinkfile(1,0)
DBCC shrinkfile(2,0)
DBCC UPDATEUSAGE (0)

/*
2 -> 要收缩的文件的fileid,对应sysfiles中的fileid。
0 -> 收缩到初始大小
*/

如何,完美,压缩,文件