Что такое мощность и как она влияет на производительность (SQL Server)? - PullRequest
6 голосов
/ 30 июня 2011

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

Запуск обновления занимает более трех минут, и я предполагаю, что выполняется полное сканирование таблицы.

Просмотр индексовв таблице индекс по столбцу имеет количество элементов, равное нулю, и число страниц, равное нулю.Существуют и другие индексы с количеством элементов, равным количеству строк в таблице (пара миллионов) и количеству страниц в пару сотен тысяч.

Что на самом деле означают эти числа?

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

1 Ответ

6 голосов
/ 30 июня 2011

Количество элементов - это число уникальных значений для этого поля в таблице.

Я подозреваю, что SQL Server фактически не создавал индекс, поскольку для него нет записей.Возможно ли, чтобы это поле было все NULL с, или на нем есть фильтр, который удаляет все записи, такие как WHERE 1=0?

Хорошее место для начала было бы запустить обновление и зафиксировать фактическое выполнениеплан.

РЕДАКТИРОВАТЬ:

Индекс Тип 3 является XML Index.

Пожалуйста, см. эту страницу для справки.

Структура индексов XML немного отличается.Я сам ими не пользуюсь, но из некоторого быстрого прочтения звучит так, будто он создает серию дополнительных индексов, к которым пользователи не имеют прямого доступа, но которые используются механизмом запросов.

...