程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> 一次性緊縮Sqlserver2005中一切庫日記的存儲進程

一次性緊縮Sqlserver2005中一切庫日記的存儲進程

編輯:MSSQL

一次性緊縮Sqlserver2005中一切庫日記的存儲進程。本站提示廣大學習愛好者:(一次性緊縮Sqlserver2005中一切庫日記的存儲進程)文章只能為提供參考,不一定能成為您想要的結果。以下是一次性緊縮Sqlserver2005中一切庫日記的存儲進程正文


有無方法更快一點?
有無方法一次性壓縮一切數據庫?

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 //履行
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved