SQL Server 2005 - 如何快速檢視資料庫的內容

摘要:SQL Server 2005 - 如何快速檢視資料庫的內容

平 日維護資料庫時,我們必定會經常去檢視資料庫的相關資訊,以便決定是否需要執行特定的維護作業。比方說,您可能需要定期查看記錄檔的剩餘空間,看看是否需 要清理記錄檔;又例如,您想要知道資料庫擁有哪些資料表,這些資料表分別擁有多少筆資料列,以及它們佔用的磁碟空間;此外,您可能想要知道資料庫的擁有者 是誰,以及資料庫擁有多少位使用者。諸如此類的資訊要如何快速取得呢?

相信各位讀者一定覺得很無聊,認為要取得上述相關資訊有什麼難的,因為只需在 SQL Server Management Studio 中,將所要檢視的資料庫展開,再一一去展開各個資料庫物件,必定能獲得所要查看的資訊。拜託哦!這種做法筆者會不知道嗎?大家別忘了,我們的重點是如何「快速」檢視一些常用的維護資訊。基本上,欲快速檢視資料庫的內容,可以使用 SQL Server Management Studio 的視覺化介面之操作,或是採用系統預存程序 sp_helpdb 的程式控制方式。使用這兩種方式所能檢視資料庫的內容項目會不盡相同,建議您可以相互搭配使用。以下我們就針對這兩種做法加以深入討論。

使用 Management Studio 快速檢視資料庫的內容

欲於 SQL Server Enterprise Manager 中「快速」檢視資料庫的各項重要資訊,其關鍵技巧在於讓顯示出「摘要」視窗中的「報表」指令。欲達此目的,請依下列步驟進行:

1.請開啟「物件總管」視窗,展開要資料庫的SQL Server 2005 Database Engine執行個體,接著展開「資料庫」項目。

2.使用滑鼠右鍵按一下您要檢視的資料庫,並從快顯功能表中選取「屬性」指令,以便開啟其「資料庫屬性」對話方塊。

3. 請使用滑鼠按一下位於「選取頁面」裡的「一般」,此時會出現如圖表 1 所示的頁面。

圖表 1

4. 「物件總管」視窗裡「資料庫」項目上,您想要檢視的資料庫直接按一下滑鼠左鍵。

 

5.  如果此時並未顯示出「摘要」視窗,請如圖表 2 所示,使用滑鼠按一下按一下「檢視」功能表,選取「摘要」指令。

 

圖表 2

 

6.如圖 3 所示,在「摘要」視窗中,按一下「報告」圖示。等待SQL Server產生磁碟使用量的報表。您還可以按下「報告」圖示旁邊的下箭頭,有更多的報表可供您查閱。

 

 

圖表 3

使用 sp_helpdb 快速檢視資料庫

 

前面談的是如何透過 SQL Server Management Studio 強大且親和力的介面來快速檢視資料庫的各項重要資訊,然而在某些狀況下,我們極有可能必須於程式中去取得資料庫的相關資訊,這個時候該怎麼做呢?請放心,欲以程式控制方式取得資料庫的各項資訊,只需使用語法如下的系統預存程序 sp_helpdb,一切就萬事 OK

 

sp_helpdb [[@dbname=]] 『name']

 

語法中的 [@dbname=] 『name' 用來指定您要取得其資訊之資料庫的名稱,如果您並未指定資料庫的名稱,將取得 .sys.databases 中所有資料庫的相關資訊。比方說,您想要取得資料庫AdventureWorks的相關資訊,請執行如下所示的命令敘述:

 

1. 如圖表 4 所示,在 SQL Server Management Studio 工具列上,按一下「新增查詢」按鈕來開啟「查詢編輯器」

 

 

 

圖表 4

 

2.如圖表 5 所示,於「查詢編輯器」視窗中鍵入下列命令然後按下「執行」按鈕

EXEC sp_helpdb AdventureWorks

 

 

圖表 5

 

如圖表 5 所示,sp_helpdb 會將取得的資訊庫資訊存放在兩個查詢結果中,圖表 6 7 分別列出第一與第二個查詢結果之各個欄位的名稱、資料型態、與存放之資訊的性質。

欄位名稱

資料型態

存放之資訊的性質

name

sysname

name欄位會存放資料庫的名稱。

db_size

nvarchar(13)

db_size欄位會存放資料庫的總大小。

owner

sysname

owner欄位會存放資料庫的擁有者。

dbid

smallint

dbid欄位會存放資料庫的識別碼(id)。

created

nvarchar(11)

created欄位會存放資料庫被建立的日期與時間。

status

varchar(600)

status欄位會存放資料庫的狀態資訊,比方說,於檢查點清理日誌。

compatibility_level

tinyint

compatibility_level欄位會存放資料庫的相容層級(6065708090

圖表6

 

欄位名稱

資料型態

存放之資訊的性質

name

nchar(128)

name欄位會存放各個資料檔或記錄檔的邏輯檔案名稱。

fileid

smallint

fileid欄位會存放一數值,此數值即是檔案的檔案識別碼。

filename

nchar(260)

filename欄位會存放各個資料檔或記錄檔的實體檔案名稱。

filegroup

nvarchar(128)

filegroup欄位會存放各個資料檔所屬之檔案群組的名稱。由於記錄檔不能隸屬於任何檔案群組,因此對記錄檔而言,此欄位之值固定為NULL

size

nvarchar(18)

size欄位會存放各個資料檔或記錄檔的檔案大小(以MB為單位)。

maxsize

nvarchar(18)

maxsize欄位會存放各個資料檔或記錄檔所能夠膨脹的極限。如果資料檔或記錄檔可以無限制地膨脹,此欄位之值將為Unlimited

growth

nvarchar(18)

growth欄位會存放各個資料檔或記錄檔於空間不足時的遞增值,此值可能是每次遞增的MB數或百分比。

usage

varchar(9)

usage欄位會存放一字串來代表此檔案的用途,如果是資料檔,此欄位之值將是data only;如果是記錄檔,此欄位之值將是log only

圖表7