2008-01-02

檢視全部的資料庫,其交易記錄檔案所使用的空間資訊; Transaction log space usage statistics for all databases



我們可以利用:

DBCC SQLPERF 陳述式


提供所有資料庫如何使用交易記錄空間的統計資料。它可以用來重設等候及閂鎖統計資料。

權限
若要執行 DBCC SQLPERF(LOGSPACE),需要伺服器的 VIEW SERVER STATE 權限。
若要重設等候和閂鎖統計資料,需要伺服器的 ALTER SERVER STATE 權限。


EX1. 顯示所有資料庫的記錄檔空間資訊
下列範例會顯示目前所安裝之所有資料庫的 LOGSPACE 資訊。


DBCC SQLPERF(LOGSPACE);
GO


以下為結果集:



可能的缺陷:

  • 顯示的是每個資料庫其交易記錄其所佔用實體檔案的百分比。
  • 無法排序。
  • 無法僅搭配篩選式來過濾資料。

我們以下的改寫範例可為參考:

檢視全部的交易記錄檔的空間使用 -- 使用資料表變數

SET NOCOUNT ON
DECLARE @tLogSize TABLE
(DBName sysname, logsize float, used float, status int)

INSERT INTO @tLogSize
EXECUTE ('DBCC SQLPERF(LOGSPACE)')

-- 依據交易記錄檔的大小,由高到低的進行排序
SELECT DBName '資料庫', logsize N'交易記錄檔整體使用的硬碟空間(MB)',
(logsize*used/100) N'交易記錄檔整體的實際使用(MB)'
FROM @tLogSize
ORDER BY 2 DESC



以下為結果集:





分析:

  • 可以依其所需進行排序。
  • 可以依其所需進行篩選資料。
  • 可彈性自訂所需要的資料,例如:顯示實際所佔用的磁碟空間(MB)等等。

沒有留言:

張貼留言