Подтвердить что ты не робот

Мысли о создании индекса для SQL Server для отсутствующих индексов

Я работаю над настройкой производительности базы данных 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 имеют разные включенные столбцы).

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

4b9b3361

Ответ 1

Вопросы заказа для индексированных столбцов, но не включены столбцы. Это потому, что для поиска используются только ключевые столбцы.

Вы должны "читать между строками" большей части документации, но это то, что они подразумевают в эту статью BOL

Это обсуждение является более явным, поскольку порядок не важен.

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