対象者:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure 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;