次の方法で共有


sys.dm_io_virtual_file_stats(Transact-SQL)

対象者:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analyticsアナリティクスプラットフォームシステム(PDW)Microsoft FabricにおけるSQLデータベース

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

Note

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

構文

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 を指定でき、現在のデータベース内のファイルを参照します。

返されるテーブル

列名 データ型 説明
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) サービスが開始されるたびに空に初期化されます。

アクセス許可

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

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

この記事のコード サンプルでは、AdventureWorks2025 または AdventureWorksDW2025 サンプル データベースを使用します。このサンプル データベースは、Microsoft SQL Server サンプルとコミュニティ プロジェクト ホーム ページからダウンロードできます。

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;