sys.fn_virtualfilestats (Transact-SQL)
傳回資料庫檔案的 I/O 統計資料,其中包括記錄檔。 在 SQL Server 中,也可從 sys.dm_io_virtual_file_stats 動態管理檢視取得這項資訊。
適用於:SQL Server (SQL Server 2008 至目前版本)。 |
語法
fn_virtualfilestats ( { database_id | NULL } , { file_id | NULL } )
引數
database_id | NULL
資料庫的識別碼。 database_id 是 int,沒有預設值。 請指定 NULL 來傳回 SQL Server 執行個體中之所有資料庫的資訊。file_id | NULL
檔案的識別碼。 file_id 是 int,沒有預設值。 請指定 NULL 來傳回資料庫中的所有檔案。
傳回的資料表
資料行名稱 |
資料類型 |
說明 |
---|---|---|
DbId |
smallint |
資料庫識別碼。 |
FileId |
smallint |
檔案識別碼。 |
TimeStamp |
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 中之 size 相同的值,但它是用位元組來表示,而不是用頁面來表示。 如果是資料庫快照集疏鬆檔案,這是作業系統供檔案使用的空間。 |
備註
fn_virtualfilestats 是一個系統資料表值函式,它會提供檔案所執行的 I/O 總數之類的統計資訊。 您可以利用這個函數來協助您持續追蹤使用者必須等待讀取或寫入檔案的時間長度。 這個函數也可以協助您識別發生大量 I/O 活動的檔案。
權限
需要伺服器的 VIEW SERVER STATE 權限。
範例
A.顯示資料庫的統計資訊
下列範例會顯示識別碼為 1 的資料庫中之檔案識別碼 1 的統計資訊。
SELECT *
FROM fn_virtualfilestats(1, 1);
GO
B.顯示具名資料庫和檔案的統計資訊
下列範例會顯示 AdventureWorks2012 範例資料庫中之記錄檔的統計資訊。 系統函數 DB_ID 用來指定 database_id 參數。
SELECT *
FROM fn_virtualfilestats(DB_ID(N'AdventureWorks2012'), 2);
GO
C.顯示所有資料庫和檔案的統計資訊
下列範例會顯示 SQL Server 執行個體中所有資料庫內所有檔案的統計資訊。
SELECT *
FROM fn_virtualfilestats(NULL,NULL);
GO