|
|
|
Плюсы и минусы Clustered Index
|
|||
|---|---|---|---|
|
#18+
Начал изучать 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 создаются кластерными. Наверное это Микрософт не спроста сделала: может быть есть плюс когда все остальные индексы вместо физического указания расположения записи на диске [страница + номер на странице] содержат ключ кластеного индекса? Т.е. при какихто технических перемещениях информации по страницам (не знаю, какое нибудь сжатие базы) -- меняется только кластерный индекс, а остальные нет. Вообщем какое у вас мнение / информация по этому вопросу? Поваляев Сергей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2002, 15:45:43 |
|
||
|
Плюсы и минусы Clustered Index
|
|||
|---|---|---|---|
|
#18+
>Плюсы: по этому индексу быстрее выборка диапазонов ... и уникальных значений >немного медленнее работа других индексов... Возможно, но не обязательно. Если К.И. сделан по одному int полю (суррогатный ключ), то разницы нет. > несколько медленнее вставка Опять же не обязательно. Если вставка идет всегда "в конец" таблицы (опять же суррогатный ключ с автоинкрементом), то даже быстрее. Короче говоря К.И. это хорошо для - справочников, которые вообще никогда не меняются. - OLTP таблиц, в которые идет вставка с автоинкрементом первичного ключа - частого поиска в диапазоне значений - таблиц, в которых идет может быть и сложный поиск, но всегда по одним и тем же полям и дающий в результате как правило ОДНО значение или диапазон значений, но в порядке следования полей в запросе. например, какая - нть иерархическая структура. И плохо для - большинства OLAP - подобных таблиц. Например, таблицы бухг. проводок - OLTP таблиц, в которых происходит модификация первичного ключа. - таблиц, в которых первичный ключ очень длинный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2002, 16:39:04 |
|
||
|
Плюсы и минусы Clustered Index
|
|||
|---|---|---|---|
|
#18+
> немного медленнее работа других индексов Бред. В большинстве случаев наличие кластерного индекса приводит к ускорению поиска по некластеному. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2002, 08:47:16 |
|
||
|
Плюсы и минусы Clustered Index
|
|||
|---|---|---|---|
|
#18+
to Yossarian: Както и не подумал -- действительно, типовой случай когда primary key делается по identity, и в этом случае как вы и написали записи добавляются просто в конец, т.е. все происходит максимально быстро. Наверное поэтому primary key по умолчанию кластерный. to Gena G.: Не могли бы вы объяснить почему убыстряется поиск по некластеному индексу при наличии кластерного? Спасибо за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2002, 09:11:34 |
|
||
|
Плюсы и минусы Clustered Index
|
|||
|---|---|---|---|
|
#18+
Тема уже обсуждалась... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2002, 09:24:35 |
|
||
|
Плюсы и минусы Clustered Index
|
|||
|---|---|---|---|
|
#18+
to Garya: Интересное обсуждение о зарплатах в Москве. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 09:19:24 |
|
||
|
Плюсы и минусы Clustered Index
|
|||
|---|---|---|---|
|
#18+
Там не только о зарпалтах. В конце - как раз поднятый тобой вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 10:04:34 |
|
||
|
Плюсы и минусы Clustered Index
|
|||
|---|---|---|---|
|
#18+
Может кто-нибудь объяснить, каким образом может помочь кластерный индекс, когда в него не входит поле по которому делается отбор в WHERE, при том что по полю из WHERE существует простой индекс? Тут шла речь о длине цепочки ссылок в B-Tree, но какая разница, какая получается длина, если этот (кластерный) индекс не используется, а используется некластерный индекс?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 13:16:12 |
|
||
|
Плюсы и минусы Clustered Index
|
|||
|---|---|---|---|
|
#18+
О необходимости иметь в таблице кластерный уникальный индекс и ускорении при этом поиска по другим индексам прямо говориться в БОЛ. При построении индексов в их страницы включаются поля из этого индекса (кстати, по этой причине желательно, что-бы он был из небольших полей). Если его нет, то используются спец. идентификаторы строк, которые, видимо, работают хуже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 13:22:59 |
|
||
|
|

start [/forum/topic.php?fid=46&tid=1819531]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 334ms |

| 0 / 0 |
