Минимальное количество строк для создания некластеризованного индекса на сервере Sql

Просто интересно, какое минимальное количество записей должно присутствовать в базе данных, чтобы некластерный индекс давал преимущество при простом запросе SQL.

У меня есть таблица с 100K записей, и мой запрос прост, как показано ниже.

SELECT
   a,
   b,
   c,
   d
FROM
   Table
WHERE 
   d in ('@d')

Моя таблица обновляется только один раз в день. Так выгодно ли создавать некластеризованный индекс для столбца 'd'?

1 ответ

Основываясь на описании таблицы, вы добавляете индекс "кучи" в вашу таблицу. Это некластеризованный индекс в таблице, где нет кластеризованного индекса.

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

Хотите ускорить запрос? Попробуйте добавить кластеризованный индекс в таблицу, а затем добавить некластеризованный индекс в столбец, по которому вы ищете. Я бы также регулярно отслеживал статистику индекса и фрагментацию, если таблица обновляется так часто, как раз в день. Если это становится проблемой, вы всегда можете перестроить индексы для максимальной эффективности.

Как я уже сказал, угадайте работу, но не добавляйте некластеризованные индексы в большую таблицу. Это все еще будет сканирование таблицы, только медленнее. Узнайте больше здесь.

Другие вопросы по тегам