fn_virtualfilestats (Transact-SQL)
ログ ファイルを含む、データベース ファイルの I/O 統計を返します。SQL Server では、この情報は動的管理ビュー sys.dm_io_virtual_file_stats からでも表示できます。
構文
fn_virtualfilestats ( { database_id | NULL } , { file_id | NULL } )
引数
database_id | NULL
データベースの ID を指定します。database_id のデータ型は int で、既定値はありません。SQL Server のインスタンスのすべてのデータベースに関する情報を返すには NULL を指定します。file_id | NULL
ファイルの ID を指定します。file_id のデータ型は int で、既定値はありません。データベース内のすべてのファイルに関する情報を返すには NULL を指定します。
返されるテーブル
列名 |
データ型 |
説明 |
---|---|---|
DbId |
smallint |
データベース ID です。 |
FileId |
smallint |
ファイル ID です。 |
TimeStamp |
int |
データが取り出されたデータベース タイムスタンプです。 |
NumberReads |
bigint |
そのファイルで実行された読み取りの数です。 |
BytesRead |
bigint |
そのファイルで実行された読み取りバイト数です。 |
IoStallReadMS |
bigint |
そのファイルで、ユーザーが読み取り I/O の完了を待機した時間の合計 (ミリ秒単位) です。 |
NumberWrites |
bigint |
そのファイルで実行された書き込みの数です。 |
BytesWritten |
bigint |
そのファイルで実行された書き込みバイト数です。 |
IoStallWriteMS |
bigint |
そのファイルで、ユーザーが書き込み I/O の完了を待機した時間の合計 (ミリ秒単位) です。 |
IoStallMS |
bigint |
IoStallReadMS と IoStallWriteMS の合計です。 |
FileHandle |
bigint |
ファイル ハンドルの値です。 |
BytesOnDisk |
bigint |
ディスク上の物理ファイル サイズ (バイト数) です。 データベース ファイルの場合は sys.database_files の size と同じ値ですが、ページではなくバイトで表されます。 データベース スナップショット スパース ファイルの場合は、オペレーティング システムがこのファイル用に使用する領域です。 |
説明
fn_virtualfilestats はシステム テーブル値関数で、ファイルで実行された I/O の総数などの統計情報を提供します。この関数を使用して、ユーザーがファイルに対する読み取りまたは書き込みを待機する時間の長さを追跡できます。また、この関数は、大量の I/O 利用量が生じたファイルを確認する場合にも役立ちます。
権限
サーバーに対する VIEW SERVER STATE 権限が必要です。
例
A. データベースの統計情報を表示する
次の例では、ID が 1 のデータベースにあるファイル ID 1 の統計情報を表示します。
SELECT *
FROM fn_virtualfilestats(1, 1);
GO
B. 指定されたデータベースおよびファイルの統計情報を表示する
次の例では、AdventureWorks サンプル データベースのログ ファイルの統計情報を表示します。システム関数 DB_ID を使用して、database_id パラメータを指定します。
SELECT *
FROM fn_virtualfilestats(DB_ID(N'AdventureWorks'), 2);
GO
C. すべてのデータベースおよびファイルの統計情報を表示する
次の例では、SQL Server インスタンス内のすべてのデータベースにあるすべてのファイルの統計情報を表示します。
SELECT *
FROM fn_virtualfilestats(NULL,NULL);
GO