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


sys.dm_db_xtp_hash_index_stats (Transact-SQL)

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

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

  • Если количество пустых контейнеров небольшое или средняя и максимальная длина цепочки близки по значению, вероятно, что общее число контейнеров слишком мало. Это приводит к тому, что разные ключи индекса хэшируются в один контейнер.

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

Длинные цепочки могут негативно повлиять на производительность всех операций DML в отдельных строках, в том числе SELECT и INSERT. Короткие цепочки и большое число пустых контейнеров указывают на то, что значение bucket_count слишком велико. Это приводит к снижению производительности просмотра индекса.

sys.dm_db_xtp_hash_index_stats сканирует всю таблицу. Таким образом, если таблицы в базе данных велики, то выполнение sys.dm_db_xtp_hash_index_stats может потребовать много времени.

Дополнительные сведения см. в разделе Определение правильного числа контейнеров для хэш-индексов.

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2014 до текущей версии).

Имя столбца

Тип

Описание

object_id

int

Идентификатор объекта родительской таблицы.

index_id

int

Идентификатор индекса.

total_bucket_count

bigint

Общее число хэш-контейнеров в индексе.

empty_bucket_count

bigint

Общее число пустых хэш-контейнеров в индексе.

avg_chain_length

bigint

Средняя длина цепочек строк во всех хэш-контейнерах в индексе.

max_chain_length

bigint

Максимальная длина цепочек строки в хэш-контейнерах.

Разрешения

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

См. также

Основные понятия

Оптимизируемые для памяти динамические административные представления таблиц (Transact-SQL)