Я работаю над настройкой производительности базы данных SQL Server 2008 и использую вывод из различных DMV для определения отсутствующих индексов, индексов, которые не используются, и т.д.
В основном я использую эти 3 скрипта (от SQLServerCentral.com), которые полагаются на данные DMV, которые предоставляет SQL Server:
The Ultimate Missing Index Finder
Окончательный повторяющийся указатель индекса
The Ultimate Index Usage Reporter
При попытке создания новых индексов я знаю, что мне нужно быть умным и пытаться сгруппировать многие из предложений в максимально возможное количество индексов, создав их как раз правильно, чтобы они могли выполнять достойную работу, обслуживая несколько разных запросы против создания отдельного индекса для каждого запроса, когда единственная разница может быть включенными столбцами и т.д.
Итак, я хотел получить мысли сообщества и посмотреть, могут ли люди ответить на несколько вопросов о чтении результатов DMV и структурировании новых индексов.
Описывается ли порядок включенных столбцов в индексе?
Выполните следующие два предложения по индексу. Что бы вы сделали, чтобы сделать 1 подходящим для обоих?
object_name equality_columns inequality_columns included_columns
Appointment [FranchiseId], [AppointmentTypeId] [CustomerId], [ApptDateTime] NULL
Appointment [FranchiseId], [AppointmentTypeId] [ApptDateTime] [CustomerId]
Если у меня есть множество предложений по индексу с одинаковыми полями равенства и неравенства, но с разными включенными полями, лучше ли включать больше полей или идти с менее включенными полями? Опять же, целью является создание 1 индекса против 3 (если 3 имеют разные включенные столбцы).
Наконец, если есть какие-то хорошие ресурсы, которые могут предложить хорошие правила или общие рекомендации для подобных вещей, я был бы признателен, если бы эти ссылки могли быть предоставлены.