fn_virtualfilestats (Transact-SQL)
返回数据库文件(包括日志文件)的 I/O 统计信息。在 SQL Server 中,还可以从 sys.dm_io_virtual_file_stats 动态管理视图获得此信息。
语法
fn_virtualfilestats ( { database_id | NULL } , { file_id | NULL } )
参数
database_id | NULL
数据库的 ID。database_id 的数据类型为 int,无默认值。指定 NULL 可返回 SQL Server 实例中所有数据库的信息。file_id | NULL
文件的 ID。file_id 的数据类型为 int,无默认值。指定 NULL 可为数据库中的所有文件返回信息。
返回的表
列名 |
数据类型 |
说明 |
---|---|---|
DbId |
smallint |
数据库 ID。 |
FileId |
smallint |
文件 ID。 |
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. 显示数据库的统计信息
以下示例显示 ID 为 1 的数据库中的文件 ID 1 的统计信息。
SELECT *
FROM fn_virtualfilestats(1, 1);
GO
B. 显示命名数据库和文件的统计信息
以下示例显示 AdventureWorks2008R2 示例数据库中日志文件的统计信息。系统函数 DB_ID 用于指定 database_id 参数。
SELECT *
FROM fn_virtualfilestats(DB_ID(N'AdventureWorks2008R2'), 2);
GO
C. 显示所有数据库和文件的统计信息
以下示例显示 SQL Server 实例内所有数据库中的所有文件的统计信息。
SELECT *
FROM fn_virtualfilestats(NULL,NULL);
GO