Поделиться через


sys.fn_virtualfilestats (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

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

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

Синтаксис

  
fn_virtualfilestats ( { database_id | NULL } , { file_id | NULL } )  

Аргументы

database_id | НЕДЕЙСТВИТЕЛЬНЫЙ
Идентификатор базы данных. Аргумент database_id имеет тип int и не имеет значения по умолчанию. Укажите ЗНАЧЕНИЕ NULL для возврата сведений для всех баз данных в экземпляре SQL Server.

file_id | НЕДЕЙСТВИТЕЛЬНЫЙ
Идентификатор файла. file_id не используется без значения по умолчанию. Чтобы получить сведения обо всех файлах в базе данных, укажите значение NULL.

Возвращаемая таблица

Имя столбца Тип данных Description
DbId smallint Идентификатор базы данных.
FileId smallint Идентификатор файла.
Метка времени 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 на сервере.

Примеры

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

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

SELECT *  
FROM fn_virtualfilestats(1, 1);  
GO  

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

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

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

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

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