点击这里给我发消息
点击这里给我发消息
首 页
网站案例
虚拟主机
企业邮箱
域名注册
Flash制作
软件开发
广告设计
服务报价
激情唯诚
联系我们
公告:热烈庆祝南京唯诚网络2010版官方网站改版成功!
 
当前位置 :南京网站建设>网页学堂>列表  
sql2000如何完美压缩.mdf文件
时间:2010-06-17 16:16 来源:南京网站建设 点击:
TAG:
 

大家都用过企业管理器中的--“收缩数据库”,里面的功能的确可以收缩数据库的日志文件(.ldf)和数据文件(.mdf),但都会发现同样的问题,在收缩“数据文件”(.mdf)时根本收缩不了多少。最多截段自动增长部份的,没有根本释放在日常操作中删除数据库的沉冗空间。

上述应该是很多人遇到过的,笔者也千试万试试出来的方法,为了确定您的数据库安全,在执行下例的操作前,请先备份你的数据库。

1.首先你要找到你的数据库最大的表,一般是数目最大的表,如果不清楚,请在查询分析器查询:

DBCC SHOWCONTIG

接着用 sp_spaceused 表 来查询reserved 的值和 data 的值 的差异可看来此表比较沉冗。

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

SELECT * INTO 新表 FROM 旧表

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

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

3.更新一下;

DBCC UPDATEUSAGE (0)

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

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

DBCC SHRINKDATABASE('库名')

DBCC shrinkfile(2,0) 

DBCC UPDATEUSAGE (0) 

/* 

2   ->   要收缩的文件的fileid,对应sysfiles中的fileid。 

0   ->   收缩到初始大小

*/

(注:红字是收缩你的数据库mdf文件,时间可能有点长;蓝字是收缩ldf文件;紫字是更新一下,非重要)

完工,这时候你应该可以看到数据库的mdf文件大小变化差异,不说几十M,笔者的数据库就从6G收缩到1G左右,再次执行查询一些数据,明显快多了。

(责任编辑:admin)
 
 
上一篇:MySQL数据库的应用(3)
下一篇:清除SQL被注入恶意病毒代码的语句
 


 推荐关注

 热点关注

关于我们 | 工作机会 | 付款方式 | 网站制作 | 网页制作 | 网页设计 | 网络公司 | 联系我们 | 网站地图
版权所有:南京唯诚信息技术有限公司 © 2005-2010 All Rights Reserved.
咨询专线:400-657-0669 技术专线:025-83208669-808 传真:025-83208669-803
地址:南京市鼓楼区广州路37-1号江苏科技大厦502室 邮编:210008 苏ICP备05002558号