
时间:2015-06-28 00:00 来源:IT猫扑网|http://www.itmop.com/ 作者:网管联盟 我要评论(0)
大家都用过企业管理器中的--&收缩数据库&,里面的功能的确可以收缩数据库的日志文件(.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左右,再次执行查询一些数据,明显快多了。
关键词标签:sql2000压缩.mdf文件
相关阅读 sql server系统表损坏的解决方法 SQL Server asp.net 数据提供程序连接池 SqlServer2005对现有数据进行分区具体步骤 一个Access数据库数据传递的实例方法 为导入文件加上时间戳标记的两种方法 SQL Server 2005 在不允许远程连接的情况下的破解
热门文章
sql server系统表损坏的解决方法
SqlServer2005对现有数据进行分区具体步骤
解决SQL Server中Group无法实现的问题
SQL Server 2005降级到2000的正确操作步骤
手把手教你学会SQL Server镜像操作
实战手记:让百万级数据瞬间导入SQL Server
人气排行 配置和注册ODBC数据源-odbc数据源配置教程 如何远程备份(还原)SQL2000数据库 SQL2000数据库远程导入(导出)数据 SQL2000和SQL2005数据库服务端口查看或修改 修改Sql Server唯一约束教程 SQL Server 2005降级到2000的正确操作步骤 sql server系统表损坏的解决方法 浅谈JSP JDBC来连接SQL Server 2005的方法 SQL Server创建表语句介绍 MS-SQL2005服务器登录名、角色、数据库用户、角色、架构的关系 如何使用SQL Server中的客户端配置工具 SQL Server 分布式查询:OLE DB连接(一)
查看所有0条评论>>