一次性壓縮Sqlserver2005中所有庫日志的存儲過程
更新時間:2012年01月20日 22:14:11 作者:
通過下面這個可以執(zhí)行單個數(shù)據(jù)庫日志壓縮,問題每次都要寫數(shù)據(jù)庫名字,日志大的話執(zhí)行速度沒有那么快
有沒有辦法更快一點?
有沒有辦法一次性收縮所有數(shù)據(jù)庫?
alter database 數(shù)據(jù)庫名
set recovery simple
go
dbcc shrinkdatabase (數(shù)據(jù)庫名)
go
alter database 數(shù)據(jù)庫名
set recovery full
go
目前也有壓縮日志的工具,一個B/S界面形式的操作壓縮數(shù)據(jù)庫的,就是在選擇數(shù)據(jù)庫的時候老需要重新去選擇具體的庫,而且數(shù)據(jù)庫數(shù)量很大的時候,有些庫被壓縮了,并沒有自動排序; 目前需要的是被壓縮后的數(shù)據(jù)庫自動滾到最后面,每次下拉列表中打開的始終是日志記錄容量最大的那個庫,這個容易實現(xiàn),要求就是執(zhí)行日志壓縮的時候,執(zhí)行速度要快些?
如何優(yōu)化?有沒有辦法一次性壓縮所有的庫?
通過存儲過程實現(xiàn),一次性壓縮所有數(shù)據(jù)庫:在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 //根據(jù)值循環(huán)執(zhí)行壓縮
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 //關(guān)閉
deallocate getDataBaseCursor //釋放
sp_helpdb urltest //比對數(shù)據(jù)庫大小
exec shrinkDatabase //執(zhí)行
有沒有辦法一次性收縮所有數(shù)據(jù)庫?
復(fù)制代碼 代碼如下:
alter database 數(shù)據(jù)庫名
set recovery simple
go
dbcc shrinkdatabase (數(shù)據(jù)庫名)
go
alter database 數(shù)據(jù)庫名
set recovery full
go
目前也有壓縮日志的工具,一個B/S界面形式的操作壓縮數(shù)據(jù)庫的,就是在選擇數(shù)據(jù)庫的時候老需要重新去選擇具體的庫,而且數(shù)據(jù)庫數(shù)量很大的時候,有些庫被壓縮了,并沒有自動排序; 目前需要的是被壓縮后的數(shù)據(jù)庫自動滾到最后面,每次下拉列表中打開的始終是日志記錄容量最大的那個庫,這個容易實現(xiàn),要求就是執(zhí)行日志壓縮的時候,執(zhí)行速度要快些?
如何優(yōu)化?有沒有辦法一次性壓縮所有的庫?
通過存儲過程實現(xiàn),一次性壓縮所有數(shù)據(jù)庫:在Sqlserver2005中測試通過
復(fù)制代碼 代碼如下:
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 //根據(jù)值循環(huán)執(zhí)行壓縮
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 //關(guān)閉
deallocate getDataBaseCursor //釋放
sp_helpdb urltest //比對數(shù)據(jù)庫大小
exec shrinkDatabase //執(zhí)行
您可能感興趣的文章:
- 使用sqlserver存儲過程sp_send_dbmail發(fā)送郵件配置方法(圖文)
- sqlserver2005利用臨時表和@@RowCount提高分頁查詢存儲過程性能示例分享
- sqlserver2008查看表記錄或者修改存儲過程出現(xiàn)目錄名無效錯誤解決方法
- sqlserver 存儲過程中If Else的用法實例
- .net下調(diào)用sqlserver存儲過程的小例子
- SqlServer獲取存儲過程返回值的實例
- sqlserver 各種判斷是否存在(表名、函數(shù)、存儲過程等)
- sqlserver 存儲過程帶事務(wù) 拼接id 返回值
- SqlServer存儲過程實現(xiàn)及拼接sql的注意點
- SQLServer存儲過程中事務(wù)的使用方法
- 獲取SqlServer存儲過程定義的三種方法
相關(guān)文章
sqlserver給表添加新字段、給表和字段添加備注、更新備注及查詢備注(sql語句)
這篇文章主要介紹了sqlserver給表添加新字段、給表和字段添加備注、更新備注及查詢備注,文中給大家介紹了Sqlserver新增帶備注字段的語句,需要的朋友可以參考下2022-10-10SQL Server中row_number函數(shù)的常見用法示例詳解
這篇文章主要給大家介紹了關(guān)于SQL Server中row_number函數(shù)的常見用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09SQL Server誤區(qū)30日談 第22天 資源調(diào)控器可以調(diào)控IO
資源調(diào)控器無法調(diào)控IO,希望下一個版本的SQL Server支持調(diào)控IO,調(diào)控IO對于對于減少對于大表的scan操作帶來的性能影響很有幫助2013-01-01sql server使用臨時存儲過程實現(xiàn)使用參數(shù)添加文件組腳本復(fù)用
這篇文章主要介紹了sql server通過臨時存儲過程實現(xiàn)使用參數(shù)添加文件組腳本復(fù)用,需要的朋友可以參考下2019-12-12