また、DB全体のサイズや使用可能領域も知りたいです。
Enterprise ManagerにてDBのプロパティで見れるファイルの容量と同等の情報をSQLで取得できればと思っています。
エンタープライズマネージャー上の動作は「SQLプロファイラ」
(”C:¥Program Files¥Microsoft SQL Server¥80¥Tools¥Binn¥profiler.exe”)
を使うことで実行しているステートメントをトレースすることが可能です。
これにより、以下のようなコマンドを発行していることが分かります。
■ DB のサイズ
use <データベース名>
select sum(convert(float,size)) * (8192.0/1024.0) from dbo.sysfiles
■ ディスクの予約領域および使用領域
exec sp_spaceused
<結果セット1>
database_name … 現在のデータベース名。
database_size … 現在のデータベースのサイズ。
unallocated space … データベース用に割り当てられていない領域。
<結果セット2>
reserved … 予約領域の合計。
Data … データの使用領域の合計。
index_size … インデックスの使用領域。
Unused … 未使用領域の大きさ。
または、システム SP は、
use master
go
sp_helptext sp_spaceused
と、することで、大概、中身が見れます。
何をやっているのか知りたいときは覗いてみるのが良いでしょう。
■ トランザクション ログ領域の使用状況に関する統計情報
DBCC SQLPERF(LOGSPACE)
Database Name … ログ統計情報を表示するデータベースの名前。
Log Size (MB) … 実際にログに利用できる領域の容量。
Log Space Used (%) … 現在トランザクション ログ情報が占有しているログ ファイルの領域のパーセンテージ。
Status … ログ ファイルのステータス (常に 0)。
URL は参考情報です。
細かい説明、ありがとうございました。