sys.dm_io_virtual_file_stats (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

傳回資料和記錄檔的 I/O 統計資料。 此動態管理函式會 取代 fn_virtualfilestats 函式。

注意

若要從 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 |空

適用於:SQL Server 2008 (10.0.x) 與更新版本,以及 Azure SQL Database

資料庫的識別碼。 database_id為 int,沒有預設值。 有效的輸入是資料庫或 Null 的識別碼。 指定 Null 時,會傳回 SQL Server 實例中的所有資料庫。

可以指定內建函數 DB_ID

file_id |空

適用於:SQL Server 2008 (10.0.x) 與更新版本,以及 Azure SQL Database

檔案的識別碼。 file_id為 int,沒有預設值。 有效的輸入是檔案或 Null 的識別碼。 指定 Null 時,會傳回資料庫上的所有檔案。

您可以指定內 建函式FILE_IDEX ,並參考目前資料庫中的檔案。

傳回的資料表

資料行名稱 資料類型 描述
database_name sysname 不適用於: :SQL Server。

資料庫名稱。

對於 Azure Synapse Analytics,這是儲存在節點上的資料庫名稱,由pdw_node_id所識別。 每個節點都有一個具有 13 個檔案的 tempdb 資料庫。 每個節點每個散發也有一個資料庫,每個散發資料庫都有 5 個檔案。 例如,如果每個節點包含 4 個散發套件,則結果會顯示每個pdw_node_id 20 個散發資料庫檔案。
database_id smallint 資料庫的識別碼。

在 Azure SQL Database 中,這些值在單一資料庫或彈性集區內是唯一的,但不在邏輯伺服器內。
file_id smallint 檔案的識別碼。
sample_ms bigint 電腦啟動後的毫秒數。 此資料行可用來比較此函式的不同輸出。

資料類型是 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

識別碼。

備註

每當啟動 SQL Server (MSSQLSERVER) 服務時,計數器就會初始化為空白。

權限

需要 VIEW SERVER STATE 權限。 如需詳細資訊,請參閱 動態管理檢視和函式(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)