fn_virtualfilestats (Transact-SQL)

ログ ファイルを含む、データベース ファイルの I/O 統計を返します。SQL Server では、この情報は動的管理ビュー sys.dm_io_virtual_file_stats からでも表示できます。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

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

IoStallReadMSIoStallWriteMS の合計です。

FileHandle

bigint

ファイル ハンドルの値です。

BytesOnDisk

bigint

ディスク上の物理ファイル サイズ (バイト数) です。

データベース ファイルの場合は sys.database_filessize と同じ値ですが、ページではなくバイトで表されます。

データベース スナップショット スパース ファイルの場合は、オペレーティング システムがこのファイル用に使用する領域です。

説明

fn_virtualfilestats はシステム テーブル値関数で、ファイルで実行された I/O の総数などの統計情報を提供します。この関数を使用して、ユーザーがファイルに対する読み取りまたは書き込みを待機する時間の長さを追跡できます。また、この関数は、大量の I/O 利用量が生じたファイルを確認する場合にも役立ちます。

権限

サーバーに対する VIEW SERVER STATE 権限が必要です。

A. データベースの統計情報を表示する

次の例では、ID が 1 のデータベースにあるファイル ID 1 の統計情報を表示します。

SELECT *
FROM fn_virtualfilestats(1, 1);
GO

B. 指定されたデータベースおよびファイルの統計情報を表示する

次の例では、AdventureWorks2008R2 サンプル データベースのログ ファイルの統計情報を表示します。システム関数 DB_ID を使用して、database_id パラメーターを指定します。

SELECT *
FROM fn_virtualfilestats(DB_ID(N'AdventureWorks2008R2'), 2);
GO

C. すべてのデータベースおよびファイルの統計情報を表示する

次の例では、SQL Server インスタンス内のすべてのデータベースにあるすべてのファイルの統計情報を表示します。

SELECT *
FROM fn_virtualfilestats(NULL,NULL);
GO