求助高手有关于数据库大小的问题(分不够再注册给!!!)

racingcode 2006-06-11 02:53:59
例如一个数据库test.mdf经过一段时间达到了100MB,备份的数据库也是100M左右。
现在为了节省空间开销批量删除了数据库中一半以上的内容。可是在我删了后test.mdf却只降到了80MB左右,而我备份了一下却发现备份的数据库只有40MB。

这是什么呀?请教高手如何才能使MDF数据库能够“压缩”?

分不够我再注册加。急求。。。。。十二万分感谢
...全文
190 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
racingcode 2006-06-11
  • 打赏
  • 举报
回复
先谢过楼上两位兄台。马上重启系统试一下。试完结分~
:)
OracleRoob 2006-06-11
  • 打赏
  • 举报
回复

1、备份数据库

2、截断事务日志

3、收缩数据库

在查询分析器中执行:


--先手工备份数据库

backup log 数据库名 with no_log
go

dbcc shrinkdatabase(数据库名)
go
go
itblog 2006-06-11
  • 打赏
  • 举报
回复
分三步:
1. backup log databasename with NO_LOG
2. backup log databasename with TRUNCATE_ONLY
3. DBCC SHRINKDATABASE(databasename)

DBCC SHRINKDATABASE
收缩指定数据库中的数据文件大小。

语法
DBCC SHRINKDATABASE
( database_name [ , target_percent ]
[ , { NOTRUNCATE | TRUNCATEONLY } ]
)

参数
database_name

是要收缩的数据库名称。数据库名称必须符合标识符的规则。有关更多信息,请参见使用标识符。

target_percent

是数据库收缩后的数据库文件中所要的剩余可用空间百分比。

NOTRUNCATE

导致在数据库文件中保留所释放的文件空间。如果未指定,将所释放的文件空间释放给操作系统。

TRUNCATEONLY

导致将数据文件中的任何未使用的空间释放给操作系统,并将文件收缩到上一次所分配的大小,从而减少文件大小,而不移动任何数据。不试图重新定位未分配页的行。使用 TRUNCATEONLY 时,忽略 target_percentis。


racingcode 2006-06-11
  • 打赏
  • 举报
回复
再顶一下~~~~~帮帮忙啦各位高手兄台~
:(
dssw 2006-06-11
  • 打赏
  • 举报
回复
分离数据库,然后删除所有的日志文件,在附加数据库.

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧