sys.dm_io_virtual_file_stats (Transact-SQL)
適用対象: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
データ ファイルとログ ファイルの I/O 統計を返します。 この動的管理機能は、 fn_virtualfilestats 関数を置き換えます。
Note
これを Azure Synapse Analytics から呼び出すには、 sys.dm_pdw_nodes_io_virtual_file_statsという名前を使用します。 この構文は、Azure Synapse Analytics のサーバーレス SQL プールでサポートされていません。
構文
-- Syntax for SQL Server and Azure SQL Database
sys.dm_io_virtual_file_stats (
{ database_id | NULL },
{ file_id | NULL }
)
-- Syntax for Azure Synapse Analytics
sys.dm_pdw_nodes_io_virtual_file_stats
引数
database_id | NULL
適用対象: SQL Server 2008 (10.0.x) 以降、Azure SQL Database
データベースの ID です。 database_id は int で、既定値はありません。 有効な入力は、データベースの ID 番号または NULL です。 NULL を指定すると、SQL Server のインスタンス内のすべてのデータベースが返されます。
組み込み関数 DB_ID を指定できます。
file_id | NULL
適用対象: SQL Server 2008 (10.0.x) 以降、Azure SQL Database
ファイルの ID。 file_id は int で、既定値はありません。 有効な入力値は、ファイルの ID 番号または NULL です。 NULL を指定すると、データベース上のすべてのファイルが返されます。
組み込み関数 FILE_IDEX を指定でき、現在のデータベース内のファイルを参照します。
返されるテーブル
列名 | データ型 | 説明 |
---|---|---|
database_name | sysname | :: SQL Server には適用されません。 データベース名. Azure Synapse Analytics の場合、これは、pdw_node_idによって識別されるノードに格納されているデータベースの名前です。 各ノードには、13 個のファイルを含む 1 つの tempdb データベースがあります。 各ノードにはディストリビューションごとに 1 つのデータベースがあり、各ディストリビューション データベースには 5 つのファイルがあります。 たとえば、各ノードに 4 つのディストリビューションが含まれている場合、結果には、pdw_node_idあたり 20 個のディストリビューション データベース ファイルが表示されます。 |
database_id | smallint | データベースの ID。 Azure SQL Database では、値は 1 つのデータベースまたは Elastic Pool 内で一意ですが、論理サーバー内では一意ではありません。 |
file_id | smallint | ファイルの ID。 |
sample_ms | bigint | コンピューターの起動後に経過した時間 (ミリ秒単位)。 この列を使用して、この function. からのさまざまな出力を比較できます。データ型は、SQL Server 2008 (10.0.x) から 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 | 適用対象: : SQL Server 2008 (10.0.x) から SQL Server 2012 (11.x) まで。 読み取りの IO リソース ガバナンスによって導入された IO 待機時間の合計。 NULL 値は許可されません。 詳細については、「 sys.dm_resource_governor_resource_pools (Transact-SQL)」を参照してください。 |
io_stall_queued_write_ms | bigint | 適用対象: : SQL Server 2008 (10.0.x) から SQL Server 2012 (11.x) まで。 書き込みの IO リソース ガバナンスによって導入された IO 待機時間の合計。 NULL 値は許可されません。 |
pdw_node_id | int | 適用対象: ディストリビューションのノードの Azure Synapse Analytics Identifier。 |
解説
カウンターは、SQL Server (MSSQLSERVER) サービスが開始されるたびに空に初期化されます。
アクセス許可
VIEW SERVER STATE アクセス許可が必要です。 詳細については、「 Dynamic Management Views and Functions (Transact-SQL)」を参照してください。
SQL Server 2022 以降でのアクセス許可
サーバーに対する VIEW SERVER PERFORMANCE STATE アクセス許可が必要です。
例
A. ログ ファイルの統計情報を返す
適用対象: SQL Server 2008 (10.0.x) 以降、Azure SQL Database
次の例では、AdventureWorks2022 データベースのログ ファイルの統計情報を返します。
SELECT * FROM sys.dm_io_virtual_file_stats(DB_ID(N'AdventureWorks2022'), 2);
GO
B. tempdb 内のファイルの統計を返す
適用対象:Azure Synapse Analytics
SELECT * FROM sys.dm_pdw_nodes_io_virtual_file_stats
WHERE database_name = 'tempdb' AND file_id = 2;
関連項目
動的管理ビューと動的管理関数 (Transact-SQL)
I O 関連の動的管理ビューと関数 (Transact-SQL)
sys.database_files (Transact-SQL)
sys.master_files (Transact-SQL)