powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Плюсы и минусы Clustered Index
9 сообщений из 9, страница 1 из 1
Плюсы и минусы Clustered Index
    #32058445
SergeyP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Начал изучать MS SQL , обнаружил такое понятие как clustered index. Подскажите, правильно ли я понял плюсы и минусы от их использования:

* наличие в таблице Clustered Index:

Плюсы: по этому индексу быстрее выборка диапазонов

Минусы:

немного медленнее работа других индексов из за того что в них тогда на концах ветвей содержатся не [страница + номер записи на странице] а [ключ в clustered index] а соответственно а) ключ в clustered index может быть большим (тем самым растут размеры обычного индекса) и б) после того как получен ключ в clustered index с его помощью нужно уже найти [страница + номер записи на странице] по clustered index.

несколько медленнее вставка / изменение при котором меняются поля входящие в clustered index т.к. при вставке может возникнуть ситуация разбиения страницы на две (page spilt) а при изменении - почти наверняка ситуация переноса записи с одной страницы на другую.

Итого, получается что обычно наличие кластерного индекса в таблице не выгодно? Или я не заметил еще каких то плюсов / минусов? Ваше мнение?

Еще я обратил внимание на фразу:

Clustered Indexes: PRIMARY KEY constraints create clustered indexes automatically if 1) [no clustered index already exists on the table] and 2) [a nonclustered index is not specified when you create the PRIMARY KEY constraint].

Т.е. по умолчанию (и соответственно если человек не особо в курсах тонкостей) primary key создаются кластерными. Наверное это Микрософт не спроста сделала: может быть есть плюс когда все остальные индексы вместо физического указания расположения записи на диске [страница + номер на странице] содержат ключ кластеного индекса? Т.е. при какихто технических перемещениях информации по страницам (не знаю, какое нибудь сжатие базы) -- меняется только кластерный индекс, а остальные нет.

Вообщем какое у вас мнение / информация по этому вопросу?

Поваляев Сергей.
...
Рейтинг: 0 / 0
Плюсы и минусы Clustered Index
    #32058480
Yossarian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Плюсы: по этому индексу быстрее выборка диапазонов
... и уникальных значений


>немного медленнее работа других индексов...

Возможно, но не обязательно. Если К.И. сделан по
одному int полю (суррогатный ключ), то разницы нет.

> несколько медленнее вставка
Опять же не обязательно. Если вставка идет
всегда "в конец" таблицы (опять же суррогатный
ключ с автоинкрементом), то даже быстрее.

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

И плохо для
- большинства OLAP - подобных таблиц. Например,
таблицы бухг. проводок
- OLTP таблиц, в которых происходит модификация
первичного ключа.
- таблиц, в которых первичный ключ очень длинный
...
Рейтинг: 0 / 0
Плюсы и минусы Clustered Index
    #32058614
Gena G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> немного медленнее работа других индексов

Бред. В большинстве случаев наличие кластерного индекса приводит к ускорению поиска по некластеному.
...
Рейтинг: 0 / 0
Плюсы и минусы Clustered Index
    #32058621
SergeyP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to Yossarian:

Както и не подумал -- действительно, типовой случай когда primary key делается по identity, и в этом случае как вы и написали записи добавляются просто в конец, т.е. все происходит максимально быстро. Наверное поэтому primary key по умолчанию кластерный.

to Gena G.:

Не могли бы вы объяснить почему убыстряется поиск по некластеному индексу при наличии кластерного?

Спасибо за ответы.
...
Рейтинг: 0 / 0
Плюсы и минусы Clustered Index
    #32058625
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тема уже обсуждалась...
...
Рейтинг: 0 / 0
Плюсы и минусы Clustered Index
    #32059023
SergeyP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to Garya:

Интересное обсуждение о зарплатах в Москве. :)
...
Рейтинг: 0 / 0
Плюсы и минусы Clustered Index
    #32059048
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там не только о зарпалтах. В конце - как раз поднятый тобой вопрос.
...
Рейтинг: 0 / 0
Плюсы и минусы Clustered Index
    #32059160
DImanch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может кто-нибудь объяснить, каким образом может помочь кластерный индекс, когда в него не входит поле по которому делается отбор в WHERE, при том что по полю из WHERE существует простой индекс? Тут шла речь о длине цепочки ссылок в B-Tree, но какая разница, какая получается длина, если этот (кластерный) индекс не используется, а используется некластерный индекс??
...
Рейтинг: 0 / 0
Плюсы и минусы Clustered Index
    #32059164
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О необходимости иметь в таблице кластерный уникальный индекс и ускорении при этом поиска по другим индексам прямо говориться в БОЛ. При построении индексов в их страницы включаются поля из этого индекса (кстати, по этой причине желательно, что-бы он был из небольших полей). Если его нет, то используются спец. идентификаторы строк, которые, видимо, работают хуже.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Плюсы и минусы Clustered Index
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]