適用於:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
分析平台系統(PDW)
Microsoft Fabric 中的 SQL 資料庫
傳回數據和記錄檔的 I/O 統計數據。 此動態管理函式會 取代 fn_virtualfilestats 函式。
注意
若要從 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為 int,沒有預設值。 有效的輸入是資料庫的 ID 編號或 NULL。 當 NULL 指定時,SQL Server 實例中的所有資料庫都會被回傳。
可以指定內建函數 DB_ID。
file_id |零
適用於:SQL Server 2008(10.0.x)及以後版本,Azure SQL 資料庫
檔案的標識碼。
file_id為 int,沒有預設值。 有效的輸入是檔案的 ID 編號或 NULL。 當 NULL 指定時,資料庫中的所有檔案都會被回傳。
您可以指定內 建函式FILE_IDEX ,並參考目前資料庫中的檔案。
傳回的資料表
| 資料行名稱 | 資料類型 | 描述 |
|---|---|---|
database_name |
sysname | 資料庫名稱。 對於 Azure Synapse Analytics,這是儲存在由 所 pdw_node_id識別節點上的資料庫名稱。 每個節點有一個 tempdb 包含 13 個檔案的資料庫。 每個節點每個發行版也有一個資料庫,每個發行版資料庫有五個檔案。 例如,若每個節點包含四個分布,結果顯示每節點 pdw_node_id有20個分布資料庫檔案。不適用於:SQL Server。 |
database_id |
smallint | 資料庫的標識碼。 在 Azure SQL 資料庫中,這些值在單一資料庫或彈性集區內是唯一的,但在邏輯伺服器內則不是唯一的。 |
file_id |
smallint | 檔案的標識碼。 |
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 延遲。 不可為空。 欲了解更多資訊,請參閱 sys.dm_resource_governor_resource_pools。 不適用於:SQL Server 2012(11.x)及更早版本。 |
io_stall_queued_write_ms |
bigint | IO 資源控管針對寫入所引進的總 IO 延遲。 不可為空。 不適用於: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 資料庫
以下範例回傳 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;