sys.fn_virtualfilestats (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

ログ ファイルを含む、データベース ファイルの 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 bigint データが取り出されたデータベース タイムスタンプです。 SQL Server 2016 (13.x) より前のバージョンでは 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_filesサイズ同じ値ですが、ページではなくバイト単位で表されます。

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

解説

fn_virtualfilestatsは、ファイルに対して実行された I/O の合計数などの統計情報を提供するシステム テーブル値関数です。 この関数を使用すると、ユーザーがファイルの読み取りまたは書き込みを待機する必要がある時間の長さを追跡できます。 この関数は、多数の I/O アクティビティが発生したファイルを識別するのにも役立ちます。

アクセス許可

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

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

次の例では、データベース内のファイル ID 1 の統計情報を ID が 1.

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)