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