Минимальное количество строк для создания некластеризованного индекса на сервере Sql
Просто интересно, какое минимальное количество записей должно присутствовать в базе данных, чтобы некластерный индекс давал преимущество при простом запросе SQL.
У меня есть таблица с 100K записей, и мой запрос прост, как показано ниже.
SELECT
a,
b,
c,
d
FROM
Table
WHERE
d in ('@d')
Моя таблица обновляется только один раз в день. Так выгодно ли создавать некластеризованный индекс для столбца 'd'?
1 ответ
Основываясь на описании таблицы, вы добавляете индекс "кучи" в вашу таблицу. Это некластеризованный индекс в таблице, где нет кластеризованного индекса.
Для таблицы, содержащей более 100000 строк, это, как правило, ухудшает производительность вашего запроса, однако, без тщательного изучения планов выполнения и отсутствия DDL, это в значительной степени просто предположение.
Хотите ускорить запрос? Попробуйте добавить кластеризованный индекс в таблицу, а затем добавить некластеризованный индекс в столбец, по которому вы ищете. Я бы также регулярно отслеживал статистику индекса и фрагментацию, если таблица обновляется так часто, как раз в день. Если это становится проблемой, вы всегда можете перестроить индексы для максимальной эффективности.
Как я уже сказал, угадайте работу, но не добавляйте некластеризованные индексы в большую таблицу. Это все еще будет сканирование таблицы, только медленнее. Узнайте больше здесь.