当前位置:  数据库>sqlserver

一次性压缩Sqlserver2005中所有库日志的存储过程

    来源: 互联网  发布时间:2014-10-04

    本文导语:  有没有办法更快一点? 有没有办法一次性收缩所有数据库? 代码如下: alter database 数据库名 set recovery simple go dbcc shrinkdatabase (数据库名) go alter database 数据库名 set recovery full go 目前也有压缩日志的工具,一个B/S界面形式的操...

有没有办法更快一点?
有没有办法一次性收缩所有数据库?
代码如下:

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
select 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 //执行

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • PHP一次性密码管理 Multi-OTP
  • 有谁做过一次性插入5000多条记录到数据库中?
  • 哪有unix下的c网络编程,如地址有效,我一次性给50分
  • 如何把一个文本内的内容一次性写入crontab里
  • 用虚拟机装linux时,为什么总是一次性就安装完成
  • 通过socket连接一次性发送大数据量的问题
  • 可否将网页文件的源代码作为String一次性读入吗?
  • 这么一次性创建一个多层的目录,象“c://aaa//bbb//ccc”
  • 到底怎么样才能一次性读出串口数据
  • sync命令执行后以后还需要执行么?是永久性的还是一次性的
  • 如何一次性的初始化所有的JSP页面?
  • 我怎麼把com目錄下所有的類和目錄下的類源文件全部一次性編譯?
  • 请问,LINUX的C++中,如何将string类型与char数组一次性互相转换?
  • 如何用C一次性删除所有网关!
  • 在AIX上一次性接收和发送大数据块出问题
  • ◆◆◆mysql的问题—成功帮助我解决此问题者,一次性给足100分!◆◆◆


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3