sys.fn_virtualfilestats (Transact-SQL)
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance
ログ ファイルを含む、データベース ファイルの 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 | bigint | データが取り出されたデータベース タイムスタンプです。 int SQL Server 2016 (13.x) より前のバージョン。 |
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 の統計情報を、 1
の ID で表示します。
SELECT *
FROM fn_virtualfilestats(1, 1);
GO
B. 名前付きデータベースとファイルの統計情報の表示
次の使用例は、AdventureWorks2022 サンプル データベースのログ ファイルの統計情報を表示します。 システム関数 DB_ID
は、 database_id パラメーターを指定するために使用されます。
SELECT *
FROM fn_virtualfilestats(DB_ID(N'AdventureWorks2022'), 2);
GO
C: すべてのデータベースおよびファイルの統計情報を表示する
次の例では、SQL Server インスタンス内のすべてのデータベース内のすべてのファイルの統計情報を表示します。
SELECT *
FROM fn_virtualfilestats(NULL,NULL);
GO
参照
DB_ID (Transact-SQL)
FILE_IDEX (Transact-SQL)
sys.database_files (Transact-SQL)
sys.master_files (Transact-SQL)