sys.dm_io_virtual_file_stats(Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsMicrosoft Fabric SQL Database

データ ファイルとログ ファイルの I/O 統計を返します。 この動的管理機能は、 fn_virtualfilestats 関数を置き換えます。

Note

Azure Synapse Analyticsからこの動的管理ビュー(DMV)を呼び出すには、名前 sys.dm_pdw_nodes_io_virtual_file_stats この構文はAzure Synapse AnalyticsのサーバーレスSQLプールではサポートされていません。

Syntax

SQL Server と Azure SQL Database の構文:

sys.dm_io_virtual_file_stats (
    { database_id | NULL } ,
    { file_id | NULL }
)

Azure Synapse Analytics の構文:

sys.dm_pdw_nodes_io_virtual_file_stats

引数

database_id |ヌル

対象:SQL Server 2008(10.0.x)以降、Azure SQL Database

データベースの ID です。 database_id は int で、既定値はありません。 有効な入力はデータベースや NULLのID番号です。 NULLを指定すると、SQL Serverのインスタンス内のすべてのデータベースが返されます。

組み込み関数 DB_ID を指定できます。

file_id |ヌル

対象:SQL Server 2008(10.0.x)以降、Azure SQL Database

ファイルの ID。 file_id は int で、既定値はありません。 有効な入力はファイルや NULLのID番号です。 NULLを指定すると、データベース上のすべてのファイルが返されます。

組み込み関数 FILE_IDEX を指定でき、現在のデータベース内のファイルを参照します。

返されるテーブル

列名 データの種類 Description
database_name sysname データベース名。

Azure Synapse Analyticsの場合、これは pdw_node_idで識別されたノードに保存されたデータベース名です。 各ノードには13個のファイルを持つ tempdb データベースがあります。 各ノードには各ディストリビューションごとに1つのデータベースがあり、各ディストリビューションデータベースには5つのファイルがあります。 例えば、各ノードに4つのディストリビューションが含まれている場合、結果は1 pdw_node_idあたり20個のディストリビューションデータベースファイルとなります。

SQL Serverには適用されません。
database_id smallint データベースの ID。

Azure SQL Database では、値は 1 つのデータベースまたは Elastic Pool 内で一意ですが、論理サーバー内では一意ではありません。
file_id smallint ファイルの ID。
sample_ms bigint コンピューターの起動後に経過した時間 (ミリ秒単位)。 この列は、この関数の異なる出力を比較するために使用できます。

SQL Server 2014(12.x)以前のバージョンでは 、データ 型はintです。 これらのバージョンでは、データベース エンジンの稼働時間が約 25 日後に値が 0 にリセットされます。
num_of_reads bigint ファイルに対して発行された読み取りの数。
num_of_bytes_read bigint ファイルで読み込まれた総バイト数。
io_stall_read_ms bigint ユーザーがファイルに対して発行された読み取りを待機した合計時間 (ミリ秒単位)。
num_of_writes bigint このファイルに対して行われた書き込みの数。
num_of_bytes_written bigint ファイルに書き込まれた総バイト数。
io_stall_write_ms bigint ファイルでの書き込み完了をユーザーが待機した総時間 (ミリ秒単位)。
io_stall bigint ユーザーがファイルで I/O が完了するのを待機した合計時間 (ミリ秒単位)。
size_on_disk_bytes bigint このファイルのディスクで使用されるバイト数。 スパース ファイルの場合、この数は、データベース スナップショットに使用されるディスク上の実際のバイト数です。
file_handle varbinary このファイルの Windows ファイル ハンドル。
io_stall_queued_read_ms bigint 読み取りの IO リソース ガバナンスによって導入された IO 待機時間の合計。 NULL 値は許可されません。 詳しくは、「sys.dm_resource_governor_resource_pools」をご覧ください。

SQL Server 2012(11.x)以前のバージョンには適用されません。
io_stall_queued_write_ms bigint 書き込みの IO リソース ガバナンスによって導入された IO 待機時間の合計。 NULL 値は許可されません。

SQL Server 2012(11.x)以前のバージョンには適用されません。
pdw_node_id int 分布のノード識別子。

適用対象:Azure Synapse Analytics

注釈

カウンターは、SQL Server (MSSQLSERVER) サービスが開始されるたびに空に初期化されます。

Permissions

SQL Server 2019 (15.x) 以前のバージョンでは、 VIEW SERVER STATE アクセス許可が必要です。

SQL Server 2022 (16.x) 以降のバージョンでは、サーバーに対する VIEW SERVER PERFORMANCE STATE アクセス許可が必要です。

Examples

この記事のコードサンプルは、AdventureWorks2025、AdventureWorksDW2025、またはAdventureWorksLT2025サンプルデータベースを使用しており、Azure Data SQL Samples Repository GitHubリポジトリからダウンロードできます。

A. ログ ファイルの統計情報を返す

適用対象:SQL ServerおよびAzure SQL Database

以下の例は、AdventureWorks2025データベース内のログファイルの統計データを返します。

SELECT *
FROM sys.dm_io_virtual_file_stats(DB_ID(N'AdventureWorks2025'), 2);

B. tempdb 内のファイルの統計を返す

適用対象:Azure Synapse Analytics

SELECT *
FROM sys.dm_pdw_nodes_io_virtual_file_stats
WHERE database_name = 'tempdb'
      AND file_id = 2;