视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
sqlserver一次压缩所有数据库日志方法
2020-11-09 09:59:55 责编:小采
文档


本文章介绍了关于sqlserver一次压缩所有数据库日志方法,如果你想一次性把数据库中的所有数据库日志压缩可以参考本文章哈。

有没有办法更快一点?
有没有办法一次性收缩所有?

代码如下

alter database 数据库名
set recovery simple

go

dbcc shrinkdatabase (数据库名)
go

alter database 数据库名
set recovery full

go


目前也有压缩日志的工具,一个B/S界面形式的操作压缩数据库的,就是在选择数据库的时候老需要重新去选择具体的库,而且数据库数量很大的时候,有些库被压缩了,并没有自动排序; 目前需要的是被压缩后的数据库自动滚到最后面,每次下拉列表中打开的始终是日志记录容量最大的那个库,这个容易实现,要求就是执行日志压缩的时候,执行速度要快些?
如何优化?有没有办法一次性压缩所有的库?

通过存储过程实现,一次性压缩所有数据库:在Sqlserver2005中测试通过

代码如下

create procedure shrinkDatabase

as
declare @name nvarchar(2000)

declare getDataBaseCursor cursor for

name from sysdatabases //取出所有库名

open getDataBaseCursor

fetch next from getDataBaseCursor
into @name //将取出来的值放在一个变量中

while @@fetch_status=0 //根据值循环执行压缩

begin

exec ('alter database '+ @name+' set recovery simple')

exec ('dbcc shrinkdatabase('+@name+')')

exec ('alter database'+@name+' set recovery full')

fetch next from getDataBaseCursor
into @name end

close getDataBaseCursor //关闭
deallocate getDataBaseCursor //释放
sp_helpdb urltest //比对数据库大小
exec shrinkDatabase //执行

下载本文
显示全文
专题