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