sys.fn_virtualfilestats (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體

傳回資料庫檔案的 I/O 統計數據,包括記錄檔。 在 SQL Server 中,此資訊也可從 sys.dm_io_virtual_file_stats 動態管理檢視取得。

Transact-SQL 語法慣例

語法

  
fn_virtualfilestats ( { database_id | NULL } , { file_id | NULL } )  

引數

database_id |空
資料庫的識別碼。 database_id為 int,沒有預設值。 指定 NULL 以傳回 SQL Server 實例中所有資料庫的資訊。

file_id |空
這是檔案的標識碼。 file_id為 int,沒有預設值。 指定 NULL 以傳回資料庫中所有檔案的資訊。

傳回的資料表

資料行名稱 資料類型 描述
DbId smallint 資料庫識別碼。
FileId smallint 檔案標識碼。
時間 戳 bigint 取得數據的資料庫時間戳。 在 SQL Server 2016 (13.x) 之前的版本 int
NumberReads bigint 檔案上發出的讀取次數。
BytesRead bigint 檔案上發出的位元組數目。
IoStallReadMS bigint 使用者等候讀取 I/O 在檔案上完成的總時間量,以毫秒為單位。
NumberWrites bigint 對檔案進行的寫入數目。
BytesWritten bigint 在檔案上寫入的位元組數目。
IoStallWriteMS bigint 使用者等候寫入 I/O 在檔案上完成的總時間量,以毫秒為單位。
IoStallMS bigint IoStallReadMS 和 IoStallWriteMS 的總
FileHandle bigint 檔句柄的值。
BytesOnDisk bigint 磁碟上的實體檔案大小(位元組計數)。

對於資料庫檔案,這個值與sys.database_files的大小相同,但以位元組而非頁面表示。

對於資料庫快照集疏鬆檔案,這是操作系統用於檔案的空間。

備註

fn_virtualfilestats是系統數據表值函式,可提供統計數據,例如檔案上執行的 I/O 總數。 您可以使用此函式來協助追蹤使用者必須等候讀取或寫入檔案的時間長度。 函式也有助於識別遇到大量 I/O 活動的檔案。

權限

需要伺服器上的 VIEW SERVER STATE 許可權。

範例

A. 顯示資料庫的統計數據

下列範例會在資料庫中 1顯示標識碼為的檔案識別碼 1 的統計數據。

SELECT *  
FROM fn_virtualfilestats(1, 1);  
GO  

B. 顯示具名資料庫和檔案的統計數據

下列範例會顯示 AdventureWorks2022 範例資料庫中記錄檔的統計數據。 系統會使用系統函 DB_ID 式來指定 database_id 參數。

SELECT *  
FROM fn_virtualfilestats(DB_ID(N'AdventureWorks2022'), 2);  
GO  

C. 顯示所有資料庫和檔案的統計數據

下列範例會顯示 SQL Server 實例中所有資料庫中所有檔案的統計數據。

SELECT *  
FROM fn_virtualfilestats(NULL,NULL);  
GO  

另請參閱

DB_ID (Transact-SQL)
FILE_IDEX (Transact-SQL)
sys.database_files (Transact-SQL)
sys.master_files (Transact-SQL)