Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помощь в создании индексов  [new]
igor609
Member

Откуда:
Сообщений: 18
Нужен совет. Есть большая таблица, есть пару полей по которым делают запросы. Для примера Status, CompanyId, CreatedAt, UserId
Комбинация поиска разная, но есть одно поле Status, которое всегда используется.
Status, CompanyId
Status, CreatedAt
Status, UserId

Какой в таком случае надо сделать индех? Только на Status, на все поля или по индексу для каждой комбинации?
23 окт 19, 07:48    [22000393]     Ответить | Цитировать Сообщить модератору
 Re: Помощь в создании индексов  [new]
stenford
Member

Откуда: урал
Сообщений: 2830
зависит от данных, но телепатия говорит, что будет всего несколько значений Статуса для всей таблицы, следовательно индекс только по нему делать бессмысленно из-за его селективности. Следовательно нужны индексы по полям Status + UserId если есть такие запросы. Насколько созданные индексы помогают - смотри по плану
23 окт 19, 08:31    [22000402]     Ответить | Цитировать Сообщить модератору
 Re: Помощь в создании индексов  [new]
igor609
Member

Откуда:
Сообщений: 18
А есть ли смысл сделать индекс по всем 4 полям, которые используюся в разных запросах?
23 окт 19, 14:57    [22000938]     Ответить | Цитировать Сообщить модератору
 Re: Помощь в создании индексов  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31355
igor609
А есть ли смысл сделать индекс по всем 4 полям, которые используюся в разных запросах?
Нет, такой индекс сможет использоваться только в одном из запросов, и то неэффективно.
23 окт 19, 15:17    [22000962]     Ответить | Цитировать Сообщить модератору
 Re: Помощь в создании индексов  [new]
igor609
Member

Откуда:
Сообщений: 18
Получаестся, что единсвенное решение для примера который я привёл, это создание 3 индексов
23 окт 19, 15:29    [22000980]     Ответить | Цитировать Сообщить модератору
 Re: Помощь в создании индексов  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31355
igor609
Получаестся, что единсвенное решение для примера который я привёл, это создание 3 индексов
Да, это самое простое, если поиск делается по 3м вариантам условий, по показанным вами парам полей.
23 окт 19, 15:43    [22000996]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить