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

Откуда: Москва
Сообщений: 1176
Какой несет в себе смысл добавление в Include поля идекса поля ID, являющееся кластерным ключём.
как физичиски это выглядит и в чем отличия от отндекса без инклюде?

просто бессмысленный синтаксис, или нечто большее?
19 июн 15, 14:18    [17792812]     Ответить | Цитировать Сообщить модератору
 Re: index + include поле (главный ключ)  [new]
Glory
Member

Откуда:
Сообщений: 104751
Mike_za
просто бессмысленный синтаксис, или нечто большее?


INCLUDE ( column [ ,... n ] )
Specifies the non-key columns to be added to the leaf level of the nonclustered index. The nonclustered index can be unique or non-unique.
19 июн 15, 14:21    [17792840]     Ответить | Цитировать Сообщить модератору
 Re: index + include поле (главный ключ)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Ключ кластерного индекса и так есть на leaf-левеле некластерного. Физически сервер вряд ли его добавляет еще раз.
19 июн 15, 14:24    [17792870]     Ответить | Цитировать Сообщить модератору
 Re: index + include поле (главный ключ)  [new]
msLex
Member

Откуда:
Сообщений: 9559
Mike_za
Какой несет в себе смысл добавление в Include поля идекса поля ID, являющееся кластерным ключём.
как физичиски это выглядит и в чем отличия от отндекса без инклюде?

просто бессмысленный синтаксис, или нечто большее?

абсолютно бессмысленный.
скуль его даже не добавить
19 июн 15, 14:25    [17792881]     Ответить | Цитировать Сообщить модератору
 Re: index + include поле (главный ключ)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Синтаксис не бессмысленный. Никто же не запрещает взять после созданий некластерного и удалить или поменять кластерный. А запросы, которые используют только некластерный индекс, будут продолжать нормально работать.
19 июн 15, 14:30    [17792925]     Ответить | Цитировать Сообщить модератору
 Re: index + include поле (главный ключ)  [new]
Mike_za
Member

Откуда: Москва
Сообщений: 1176
Спасибо.

Гавриленко Сергей Алексеевич
Синтаксис не бессмысленный. Никто же не запрещает взять после созданий некластерного и удалить или поменять кластерный. А запросы, которые используют только некластерный индекс, будут продолжать нормально работать.


НУ да, звучит логично.

и еще один вопрос в тему. В форуме мелькало, что хоть все поля кладите в инклюде, если место не жалко...

Но, мне показалось, или при сике по индексу с кучей инклюд полей происходит сильно больше чтений, чем по такому же индексу без инклюдов.
Причем иногда даже больше, чем если бы был обычный сик + лукап. таки длиннный инклюд просаживает скорость?
19 июн 15, 15:27    [17793356]     Ответить | Цитировать Сообщить модератору
 Re: index + include поле (главный ключ)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Mike_za
Спасибо.

Гавриленко Сергей Алексеевич
Синтаксис не бессмысленный. Никто же не запрещает взять после созданий некластерного и удалить или поменять кластерный. А запросы, которые используют только некластерный индекс, будут продолжать нормально работать.


НУ да, звучит логично.

и еще один вопрос в тему. В форуме мелькало, что хоть все поля кладите в инклюде, если место не жалко...

Но, мне показалось, или при сике по индексу с кучей инклюд полей происходит сильно больше чтений, чем по такому же индексу без инклюдов.
Причем иногда даже больше, чем если бы был обычный сик + лукап. таки длиннный инклюд просаживает скорость?
Чем шире листовой уровень, тем выше вероятность поиметь в итоге более глубокое дерево индекса. Вот глубина индекса как раз и влияет на кол-во чтений непосредственно при seek. Однако, в целом, кол-во чтений вряд ли будет меньшм, если вы не включите нужные поля в инклуд, и будете делать еще один лукап в кластерный индекс.
19 июн 15, 15:47    [17793573]     Ответить | Цитировать Сообщить модератору
 Re: index + include поле (главный ключ)  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Mike_za
и еще один вопрос в тему. В форуме мелькало, что хоть все поля кладите в инклюде, если место не жалко...

Но, мне показалось, или при сике по индексу с кучей инклюд полей происходит сильно больше чтений, чем по такому же индексу без инклюдов.
То есть запись вас совсем не волнует?
Если положить все поля в INCLUDE, то вы по сути получите второй "кластерный" индекс.
19 июн 15, 21:22    [17795137]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить