适用于: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 数据库的语法:
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 数据库
数据库 ID。
database_id为 int,无默认值。 有效的输入是数据库的ID编号或 NULL。 当 NULL 指定时,SQL Server 实例中的所有数据库都会返回。
你可以指定内置函数 DB_ID。
file_id |零
适用于:SQL Server 2008(10.0.x)及更高版本,Azure SQL 数据库
文件的 ID。
file_id为 int,无默认值。 有效的输入是文件的ID编号或 NULL。 当 NULL 指定时,数据库中的所有文件都会返回。
可以指定内置函数 FILE_IDEX ,并引用当前数据库中的文件。
返回的表
| 列名称 | 数据类型 | 描述 |
|---|---|---|
database_name |
sysname | 数据库名称 对于 Azure Synapse Analytics,这是存储在由 S pdw_node_id标识的节点上的数据库名称。 每个节点有一个 tempdb 包含13个文件的数据库。 每个节点每个分布版也有一个数据库,每个分布数据库包含五个文件。 例如,如果每个节点包含四个分布,结果显示每个 pdw_node_id分布数据库文件为20个。不适用于:SQL Server。 |
database_id |
smallint | 数据库的 ID。 在 Azure SQL 数据库中,这些值在单一数据库或弹性池中是唯一的,但在逻辑服务器中不是唯一的。 |
file_id |
smallint | 文件的 ID。 |
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 延迟。 不可为 null。 更多信息请参见 sys.dm_resource_governor_resource_pools。 不适用于:SQL Server 2012(11.x)及更早版本。 |
io_stall_queued_write_ms |
bigint | 针对写的 IO 资源调控所引入的总 IO 延迟。 不可为 null。 不适用于: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;