|
Кластерный индекс как в MSSQL
|
|||
---|---|---|---|
#18+
Насколько я понял у Oracle такого нет, но слышал что есть хеш-кластер, насколько это если можно так сказать одно и тоже? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2002, 15:31 |
|
Кластерный индекс как в MSSQL
|
|||
---|---|---|---|
#18+
а ты не мог бы рассказать, что такое кластерный индекс в понимании MS и чем он отличается от обычного B*Tree (деревянного) ? Я как-то спросил в мс-эхе, а в ответ тишина. Видать вопрос был слишком глупый ... Если расскажешь, что-такое кластерный индекс в МС, я тебе подберу подходящий по твоей задаче из десятка существующих в оракл :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2002, 15:39 |
|
Кластерный индекс как в MSSQL
|
|||
---|---|---|---|
#18+
Кластерный - это когда на уровне листьев располагаются не ссылки на данные, а сами данные. Таким образом таблица оказывается физически отсортированной по этому индексу ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2002, 15:48 |
|
Кластерный индекс как в MSSQL
|
|||
---|---|---|---|
#18+
Цитата (Мамаев, Шкарина): Принципиальным отличием кластерного индекса от индексов других типов является, то что при его определении в таблице физическое расположение данных перестраивается в соответствии со структурой индекса ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2002, 15:50 |
|
Кластерный индекс как в MSSQL
|
|||
---|---|---|---|
#18+
Понятно...кроме одного...чего тут кластерного. Хотя у МС понятие кластера всегда было своим... запатентованным ;-) Думаю, похоже на IOT- Index Organized Tables. Советую использовать осторожно, с предварительным анализом. Есть ограничения/баги. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2002, 16:05 |
|
Кластерный индекс как в MSSQL
|
|||
---|---|---|---|
#18+
Если не ошибаюсь, у Oracle аналогом clustered index будет IOT (Index-organized table). Про них можно почитать здесь: Код: plaintext
С уважением, Наталия ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2002, 16:07 |
|
Кластерный индекс как в MSSQL
|
|||
---|---|---|---|
#18+
"...при его определении в таблице физическое расположение данных перестраивается в соответствии со структурой индекса" Можно всё таки уточнить, реально создаётся ли сам индекс для такой таблицы? То есть таблица физически перестраивается - это понятно. Но значит ли это, что обязательно создаётся специальный индекс? Если создаётся, то для чего такая избыточность двойного физического упорядочивания и самой таблицы и индекса? И вообще в чём смысл физического упорядочивания в понимании MSSQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2002, 16:11 |
|
Кластерный индекс как в MSSQL
|
|||
---|---|---|---|
#18+
Сразу не отходя от кассы по поводу кластеров в Oracle. Как я понимаю, кластеры используются для таблиц, которые совместно используются в операторах select. При выполнении соединения кластеризованных таблиц количество блоков данных считываемых для удовлетворения запроса, значительно уменьшается. Данные хранятся в одной и той же физической области, что снижает обьём ввода/вывода информации таблиц. Насколько я знаю использование кластеров накладывает определённые ограничения на некоторые расширенные возможности Oracle, такие как Advanced Replication. Это надо учитывать при разработке. Возможно в 8i и выше это ограничение снято. Поправьте кто знает. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2002, 16:22 |
|
Кластерный индекс как в MSSQL
|
|||
---|---|---|---|
#18+
IOT предназначено в основном для хранилищ данных кажется. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2002, 16:27 |
|
Кластерный индекс как в MSSQL
|
|||
---|---|---|---|
#18+
Насколько реально незнаю, по крайней мере в списках он есть. Из описания хеш-кластеров(не путать с кластерами, создающимися для ускорения доступа для сильно связанных таблиц) я понял что это наиболее близко, проблема в том что я так и не понял как уже созданную и заполненную таблицу засунуть в это хеш-кластер или я че то не понимаю (просьба сильно не бить :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2002, 16:33 |
|
Кластерный индекс как в MSSQL
|
|||
---|---|---|---|
#18+
Если кому-то это еще интересно, то "Microsoft® SQL Server™ 2000 indexes are organized as B-trees. Each page in an index holds a page header followed by index rows. Each index row contains a key value and a pointer to either a lower-level page or a data row. Each page in an index is called an index node. The top node of the B-tree is called the root node. The bottom layer of nodes in the index are called the leaf nodes. The pages in each level of the index are linked together in a doubly-linked list. In a clustered index, the data pages make up the leaf nodes. Any index levels between the root and the leaves are collectively known as intermediate levels. For a clustered index, sysindexes.root points to the top of the clustered index. SQL Server navigates down the index to find the row corresponding to a clustered index key. To find a range of keys, SQL Server navigates through the index to find the starting key value in the range, and then scans through the data pages using the previous or next pointers. To find the first page in the chain of data pages, SQL Server follows the leftmost pointers from the root node of the index." ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2002, 09:55 |
|
Кластерный индекс как в MSSQL
|
|||
---|---|---|---|
#18+
2Guest1 Хэш-кластер обычно применяется для статичных таблиц, где можно подобрать свою или использовать встроенную хэш-функцию. Смысл в том, что имея значение из хэш-столбца, через хэш-функцию вы сразу получаете адрес искомого блока данных. Т.е. за одну операцию чтения вы сразу извлекаете данные. Если использовать индекс, то понадобится как минимум 2 операции чтения. Если таблица будет расти, то хэш-функция будет давать промахи. Уже существующую таблицу преобразовать в кластер нельзя, его нужно создать насколько я помню. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2002, 11:41 |
|
Кластерный индекс как в MSSQL
|
|||
---|---|---|---|
#18+
2Glory Если я правильно понял, то структура B*Tree индексов в Oracle и MS идентична. MS page == Oracle block. Вопрос по ходу...чем определяется размер страницы в МS? какие размеры могут быть у страницы? А MS clustered index == Oracle Index Orginized Table. Т.е. у кластеред индекса нет соответствующей таблицы, где хранятся данные, т.е. все данные полностью хранятся в leaf pages. Я правильно понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2002, 11:49 |
|
Кластерный индекс как в MSSQL
|
|||
---|---|---|---|
#18+
чем определяется размер страницы в МS? какие размеры могут быть у страницы? Размер страницы жестко задан и составляет 8Kb из которых под данные может быть использовано 8060 bytes. Т.е. у кластеред индекса нет соответствующей таблицы, где хранятся данные, т.е. все данные полностью хранятся в leaf pages. Я правильно понял? Да, кластерный индекс и есть собственно сама физически упорядоченная таблица + B-дерево ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2002, 12:51 |
|
Кластерный индекс как в MSSQL
|
|||
---|---|---|---|
#18+
теперь понятно. а можно ли в МС на clustered index навесить еще индексы по другим полям? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2002, 13:34 |
|
Кластерный индекс как в MSSQL
|
|||
---|---|---|---|
#18+
2 killed Я слабо представляю что значит "на clustered index навесить еще индексы по другим полям". Но если имеется в виду можно ли создавать еще индексы по таблице с кластерным интексом - то можно, но кластерный индекс естественно может быть только один. Кстати cluster переводится как пучок, гроздь, ничего удивительного в названии индекса кластеным я не вижу. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2002, 14:06 |
|
Кластерный индекс как в MSSQL
|
|||
---|---|---|---|
#18+
"The pointer from an index row in a nonclustered index to a data row is called a row locator. The structure of the row locator depends on whether the data pages are stored in a heap or are clustered. For a heap, a row locator is a pointer to the row. For a table with a clustered index, the row locator is the clustered index key ." ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2002, 15:03 |
|
|
start [/forum/topic.php?fid=52&fpage=2835&tid=1992839]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 127ms |
0 / 0 |