天天看點

第三章——使用系統函數、存儲過程和DBCC SQLPERF指令來監控SQLServer(3)前言:步驟:分析:擴充資訊:

本文為這個系列最後一篇。将是如何使用DBCC指令來監控SQLServer日志空間的使用情況。

       每個資料庫都必須有事務日志。事務日志記錄每個DML操作,并應用于SQLServer的資料庫中,如果恢複模式為FULL并經常有DML操作,日志将增長得非常快。幾時恢複模式為simple,當資料庫處于事務複制或者合并複制時,日志通常會增長。如果日志不是經常備份且日志檔案的增長沒有受到限制的話,将有可能耗光你所有的硬碟空間然後造成資料庫當機。作為DBA,應該經常監控日志的使用情況以避免問題的發生。

       作為DBA,其中一個重要的責任就是監控日志檔案的大小,以確定空間不會被耗光導緻資料庫伺服器當機。

         SQLServer提供了不同的DBCC指令供DBA使用,其中DBCC

SQLPERF是其中一個用于監控日志大小的常用指令,在本文中,将示範使用這個指令。除了擷取日志的資訊,還可以用于重置等待和闩鎖狀态。

DBCC SQLPERF用于監控日志使用情況時,隻需要傳入一個參數LOGSPACE。但是它也接受其他指令。

DBCC SQLPERF(‘logspace’)指令傳回三個列:DatabaseName、LogSize(MB)、LogSpaceUsed(%)

1、 

打開SSMS然後新開一個查詢視窗。

2、 

在查詢視窗中輸入以下代碼:

       本例中建立了一個臨時表,然後調用DBCC SQLPERF來把資料插入表中。由于DBCC指令需要用EXEC來執行,是以使用動态SQL來實作。根據傳回的結果可以預測是否有必要馬上執行日志備份操作(完整備份不截斷日志,也就不會釋放日志空間)。 

       可以改進這個語句來擷取彙總值,在一段時間之後,表就存放了日志使用資訊的曆史記錄。可以用于分析日志的增長情況。