SqlServer收缩数据库日志

USE [master]
GO

-- 收缩数据库
DECLARE @dbname nvarchar(255)
SET @dbname = '数据库名称'

-- 1.截断事务日志
EXEC('BACKUP LOG ['+@dbname+'] WITH NO_LOG')

-- 2.收缩数据库
EXEC('DBCC SHRINKDATABASE(['+@dbname+'], TRUNCATEONLY)')

-- 3.设定自动收缩
EXEC('EXEC SP_DBOPTION '''+@dbname+''', ''autoshrink'', ''TRUE''')

GO

 

DUMP TRANSACTION 和 BACK LOG 的区别:
DUMP TRANSACTION [数据库名称] WITH NO_LOG 是 sybase 的用法,SqlServer 的核心原来就是 sybase 的。因此 SqlServer 也能用 DUMP TRANSACTION。
BACK LOG [数据库名称] WITH NO_LOG 是 SqlServer 的用法。

 

DBCC SHRINKDATABASE 命令语法如下:(http://www.yesky.com/imagesnew/software/tsql/ts_dbcc_3pd1.htm)
DBCC SHRINKDATABASE (database_name
    [, target_percent] 
    [, {NOTRUNCATE | TRUNCATEONLY}] )
各参数说明如下: 
?target_percent 指定将数据库压缩后,未使用的空间占数据库大小的百分之几。如果指定的百分比过大,超过了压缩前未使用空间所占的比例,则数据库不会被压缩。并且压缩后的数据库不能比数据库初始设定的容量小。 
?NOTRUECATE 将数据库缩减后剩余的空间保留在数据库,中不返还给操作系统 。如果不选择此选项,则剩余的空间返还给操作系统。 
?TRUNCATEONLY 将数据库缩减后剩余的空间返还给操作系统。使用此命令时SQL Server 将文件缩减到最后一个文件分配,区域但不移动任何数据文件。选择此项后,target_percent 选项就无效了。例6-14: 压缩数据库mytest 的未使用空间为数据库大小的20%。

转载于:https://www.cnblogs.com/kisszoo/archive/2011/11/14/2248748.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值