Home >Database >Mysql Tutorial >sqlserver一次压缩所有数据库日志方法

sqlserver一次压缩所有数据库日志方法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 17:49:021063browse

本文章介绍了关于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    //执行

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn