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