sys.dm_io_virtual_file_stats (Transact-SQL)
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics 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 数据库
数据库 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 | 不适用于::SQL Server。 数据库名称。 对于 Azure Synapse Analytics,这是存储在pdw_node_id标识的节点上的数据库的名称。 每个节点都有一个 tempdb 数据库,其中包含 13 个文件。 每个节点每个分发也有一个数据库,每个分发数据库有 5 个文件。 例如,如果每个节点包含 4 个分布区,则结果显示每个pdw_node_id 20 个分发数据库文件。 |
database_id | smallint | 数据库的 ID。 在 Azure SQL 数据库中,这些值在单一数据库或弹性池中是唯一的,但在逻辑服务器中不是唯一的。 |
file_id | smallint | 文件的 ID。 |
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 数据库
以下示例返回 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)