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


sys.dm_db_index_usage_stats (Transact-SQL)

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

Возвращает количество различных операций с индексами и время, которое было затрачено на последнее выполнение операции каждого типа.

В База данных SQL Azure динамические административные представления не могут предоставлять сведения, влияющие на доступность базы данных или предоставление сведений о других базах данных, к которым пользователь имеет доступ. Чтобы избежать предоставления этой информации, отфильтровывается каждая строка, содержащая данные, которые не принадлежат подключену клиенту.

Примечание.

DmV sys.dm_db_index_usage_stats не возвращает сведения о оптимизированных для памяти индексах или пространственных индексах. Сведения об использовании индексов, оптимизированных для памяти, см. в sys.dm_db_xtp_index_stats (Transact-SQL).

Примечание.

Чтобы вызвать это представление из Azure Synapse Analytics или Analytics Platform System (PDW), используйте sys.dm_pdw_nodes_db_index_usage_stats. Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.

Имя столбца Тип данных Description
database_id smallint Идентификатор базы данных, в которой определены таблица или представление.

В База данных SQL Azure значения уникальны в одной базе данных или эластичном пуле, но не в логическом сервере.
object_id int Идентификатор таблицы или представления, для которых определен индекс.
index_id int Идентификатор индекса.
user_seeks bigint Количество операций поиска по запросам пользователя.
user_scans bigint Количество сканирований по запросам пользователей, которые не использовали предикат "поиск".
user_lookups bigint Количество уточняющих запросов для запросов пользователей.
user_updates bigint Количество операций обновления по запросам пользователя. К ним относятся вставка, удаление и обновления, представляющие количество операций, выполненных не на фактические строки. Например, если удалить 1000 строк в одной инструкции, это число увеличивается на 1
last_user_seek datetime Время последней операции поиска, выполненной пользователем.
last_user_scan datetime Время последней операции просмотра, выполненной пользователем.
last_user_lookup datetime Время последней операции поиска соответствия, выполненной пользователем.
last_user_update datetime Время последней операции обновления, выполненной пользователем.
system_seeks bigint Количество операций поиска по системным запросам.
system_scans bigint Количество операций просмотра по системным запросам.
system_lookups bigint Количество уточняющих запросов для системных запросов.
system_updates bigint Количество операций обновления по системным запросам.
last_system_seek datetime Время последней системной операции поиска.
last_system_scan datetime Время последней системной операции просмотра.
last_system_lookup datetime Время последнего системного уточняющего запроса.
last_system_update datetime Время последней системной операции обновления.
pdw_node_id int Область применения: Azure Synapse Analytics, Analytics Platform System (PDW)

Идентификатор узла, на который находится данное распределение.

Замечания

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

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

Счетчики инициализированы в пустое время при запуске ядра СУБД. Узнать время последнего запуска ядра СУБД можно в столбце sqlserver_start_time из sys.dm_os_sys_info. Кроме того, когда база данных отсоединяется или останавливается (например, если аргументу AUTO_CLOSE присвоено значение ON), из представления удаляются все строки, связанные с этой базой данных.

При использовании индекса добавляется sys.dm_db_index_usage_stats строка, если строка еще не существует для индекса. При добавлении строки ее счетчики вначале сбрасываются в нуль.

Во время обновления до SQL Server 2008 R2 (10.50.x), SQL Server 2012 (11.x) или SQL Server 2014 (12.x) удаляются записи sys.dm_db_index_usage_stats . Начиная с SQL Server 2016 (13.x), записи сохраняются до SQL Server 2008 R2 (10.50.x).

Разрешения

На SQL Server и управляемом экземпляре SQL необходимо разрешение VIEW SERVER STATE.

Для целей службы База данных SQL Basic, S0 и S1, а также для баз данных в эластичных пулах, учетной записи администратора сервера, учетной записи администратора Microsoft Entra или членства в ##MS_ServerStateReader## роли сервера требуется. Для всех остальных целей обслуживания базы данных SQL требуется разрешение VIEW DATABASE STATE в базе данных или членство в роли сервера ##MS_ServerStateReader##.

Разрешения для SQL Server 2022 и более поздних версий

Требуется разрешение VIEW SERVER PERFORMANCE STATE на сервере.

См. также

Индексы, связанные с динамическими административными представлениями и функциями (Transact-SQL)
sys.dm_db_index_physical_stats (Transact-SQL)
sys.dm_db_index_operational_stats (Transact-SQL)
sys.indexes (Transact-SQL)
sys.objects (Transact-SQL)
sys.dm_os_sys_info (Transact-SQL)
Наблюдение и настройка производительности