sys.fn_virtualfilestats (Transact-SQL)

Применимо к:база данныхSQL Server Azure SQL Управляемый экземпляр SQL Azure

Возвращает статистику ввода-вывода для файлов базы данных, включая файлы журналов. В SQL Server эти сведения также доступны в динамическом административном представлении sys.dm_io_virtual_file_stats.

Соглашения о синтаксисе Transact-SQL

Синтаксис

  
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 bigint Отметка времени базы данных, указывающая, когда была получена информация. int в версиях до SQL Server 2016 (13.x).
NumberReads bigint Количество считываний для этого файла.
BytesRead bigint Число считанных из файла байтов.
IoStallReadMS bigint Общее количество времени, в миллисекундах, затраченного пользователями на ожидание выполнения операций чтения из файла.
NumberWrites bigint Количество операций записи для этого файла.
BytesWritten bigint Число байтов, записанных в файл.
IoStallWriteMS bigint Общее количество времени, в миллисекундах, затраченного пользователями на ожидание выполнения операций записи в файл.
IoStallMS bigint Сумма IoStallReadMS и IoStallWriteMS.
FileHandle bigint Значение дескриптора файла.
BytesOnDisk bigint Физический размер файла на диске (в байтах).

Для файлов базы данных это то же значение, что и размер в sys.database_files, но выражается в байтах, а не на страницах.

Для разреженных файлов моментального снимка базы данных это пространство, используемое операционной системой для данного файла.

Комментарии

fn_virtualfilestats — это системная функция с табличным значением, которая предоставляет статистические сведения, например общее количество операций ввода-вывода, выполненных в файле. Эту функцию можно использовать для контроля времени, затрачиваемого пользователями на ожидание выполнения чтения или записи в файл. Эта функция также помогает выявить файлы, над которыми выполняется много операций ввода-вывода.

Разрешения

необходимо разрешение VIEW SERVER STATE на сервере.

Примеры

A. Просмотр статистической информации для базы данных

В следующем примере выводится статистическая информация для идентификатора файла 1 в базе данных с идентификатором 1.

SELECT *  
FROM fn_virtualfilestats(1, 1);  
GO  

Б. Просмотр статистической информации для именованной базы данных и файла

В следующем примере отображаются статистические сведения для файла журнала в образце базы данных AdventureWorks2022. Системная функция DB_ID используется для указания параметра database_id .

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

В. Просмотр статистической информации для всех баз данных и файлов

В следующем примере отображаются статистические сведения для всех файлов во всех базах данных в экземпляре 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)