Как узнать, когда/если у меня слишком много индексов?

dba.stackexchange https://dba.stackexchange.com/questions/5525

Вопрос

Запуск Microsoft SQL Server Profiler время от времени, он предлагает мне кучу новых индексов и статистики для создания («... 97% оценочных улучшений ...»).

От моего понимания каждый добавленный индекс может сделать SQL SELECT запросить быстрее, но также UPDATE или же INSERT Запрос медленнее, так как индексы должны быть отрегулированы.

Мне интересно, когда у меня есть «слишком много» индексов/статистики?

Может быть, нет четкого ответа на это, но какое-то правило.

Это было полезно?

Решение

Ваш профиль загрузки является наиболее важным фактором в ответе на этот вопрос.

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

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

  • Если ваша нагрузка является олап, индекс экономно, так как вы все равно сканируете целевые таблицы.

Откуда вы знаете, что у вас слишком много индексов?

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

  • Частое удаление, обновление или вставка показывает план запроса, который включает в себя несколько дорогих изменений индекса (то есть не классифицированный индекс вставлять, Обновить, или же Удалить) Используйте свое суждение, чтобы определить, стоит ли штраф о этих заявлениях DML, стоит из -за того, что вы получаете из индексов, которые необходимо обновлять.

Другие советы

Если у вас есть индексы, которые поддерживаются, но никогда не используются (или используются редко), то у вас есть многие индексы. Если все ваши индексы используются для повышения производительности пользователя, вам не нужно много.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с dba.stackexchange
scroll top