SQLServer2000でDBのデータファイル、トランザクションログの容量を取得するSQL。

また、DB全体のサイズや使用可能領域も知りたいです。
Enterprise ManagerにてDBのプロパティで見れるファイルの容量と同等の情報をSQLで取得できればと思っています。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/01/24 16:37:20
  • 終了:--

回答(1件)

id:cx20 No.1

cx20回答回数607ベストアンサー獲得回数1082005/01/24 17:18:21

ポイント40pt

エンタープライズマネージャー上の動作は「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 は参考情報です。

id:salvatore

細かい説明、ありがとうございました。

2005/01/24 19:18:20

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません