対象者: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プールではサポートされていません。
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 サンプル データベースを使用します。このサンプル データベースは、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;