Как узнать, какие рекомендации по индексам SQL Server 2005 следует реализовать, если таковые имеются?

StackOverflow https://stackoverflow.com/questions/3975

  •  08-06-2019
  •  | 
  •  

Вопрос

Мы находимся в процессе обновления одного из наших экземпляров SQL Server с 2000 по 2005 год.Я установил панель мониторинга производительности (http://www.microsoft.com/downloads/details.aspx?FamilyId=1d3a4a0d-7e0c-4730-8204-e419218c1efc&displaylang=en) для доступа к некоторым отчетам высокого уровня.В одном из отчетов указаны отсутствующие (рекомендуемые) индексы.Я думаю, что это основано на каком-то системном представлении, поддерживаемом оптимизатором запросов.

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

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

Решение

Первое, что нужно знать:

При обновлении с версии 2000 до 2005 (с помощью отсоединения и подключения) убедитесь, что вы:

  1. Установите совместимость на 90.
  2. Перестроить индексы
  3. Запустить статистику обновлений при полной проверке

Если вы этого не сделаете, вы получите неоптимальные планы.

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

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

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

НЕТ замены тестированию, когда дело касается производительности.Если ты этого не докажешь, ты ничего не сделал.

Лучше всего исследовать наиболее распространенные типы запросов, которые происходят в вашей базе данных, и создавать индексы на основе этих исследований.

Например, если есть таблица, в которой хранятся посещения веб-сайтов, в которую очень часто пишут, но почти не читают.Тогда не индексируйте таблицу.

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

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