powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Кластерный индекс как в MSSQL
17 сообщений из 17, страница 1 из 1
Кластерный индекс как в MSSQL
    #32062385
Guest1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понял у Oracle такого нет, но слышал что есть хеш-кластер, насколько это если можно так сказать одно и тоже?
...
Рейтинг: 0 / 0
Кластерный индекс как в MSSQL
    #32062387
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а ты не мог бы рассказать, что такое кластерный индекс в понимании MS и чем он отличается от обычного B*Tree (деревянного) ?

Я как-то спросил в мс-эхе, а в ответ тишина. Видать вопрос был слишком глупый ...

Если расскажешь, что-такое кластерный индекс в МС, я тебе подберу подходящий по твоей задаче из десятка существующих в оракл :-)
...
Рейтинг: 0 / 0
Кластерный индекс как в MSSQL
    #32062393
lvv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
lvv
Гость
Кластерный - это когда на уровне листьев располагаются не ссылки на данные, а сами данные. Таким образом таблица оказывается физически отсортированной по этому индексу
...
Рейтинг: 0 / 0
Кластерный индекс как в MSSQL
    #32062394
Guest1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Цитата (Мамаев, Шкарина):
Принципиальным отличием кластерного индекса от индексов других типов является, то что при его определении в таблице физическое расположение данных перестраивается в соответствии со структурой индекса
...
Рейтинг: 0 / 0
Кластерный индекс как в MSSQL
    #32062400
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно...кроме одного...чего тут кластерного. Хотя у МС понятие кластера всегда было своим... запатентованным ;-)

Думаю, похоже на IOT- Index Organized Tables. Советую использовать осторожно, с предварительным анализом. Есть ограничения/баги.
...
Рейтинг: 0 / 0
Кластерный индекс как в MSSQL
    #32062401
lh@work
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если не ошибаюсь, у Oracle аналогом clustered index будет IOT (Index-organized table). Про них можно почитать здесь:
Код: plaintext
http://otn.oracle.com/docs/products/oracle9i/doc_library/release2/server. 920 /a96521/tables.htm# 8192 

С уважением, Наталия
...
Рейтинг: 0 / 0
Кластерный индекс как в MSSQL
    #32062403
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"...при его определении в таблице физическое расположение данных перестраивается в соответствии со структурой индекса"

Можно всё таки уточнить, реально создаётся ли сам индекс для такой таблицы? То есть таблица физически перестраивается - это понятно. Но значит ли это, что обязательно создаётся специальный индекс? Если создаётся, то для чего такая избыточность двойного физического упорядочивания и самой таблицы и индекса?

И вообще в чём смысл физического упорядочивания в понимании MSSQL?
...
Рейтинг: 0 / 0
Кластерный индекс как в MSSQL
    #32062408
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сразу не отходя от кассы по поводу кластеров в Oracle.
Как я понимаю, кластеры используются для таблиц, которые совместно используются в операторах select.
При выполнении соединения кластеризованных таблиц количество блоков данных считываемых для удовлетворения запроса, значительно уменьшается. Данные хранятся в одной и той же физической области, что снижает обьём ввода/вывода информации таблиц.

Насколько я знаю использование кластеров накладывает определённые ограничения на некоторые расширенные возможности Oracle, такие как Advanced Replication.
Это надо учитывать при разработке.
Возможно в 8i и выше это ограничение снято.
Поправьте кто знает.
...
Рейтинг: 0 / 0
Кластерный индекс как в MSSQL
    #32062409
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IOT предназначено в основном для хранилищ данных кажется.
...
Рейтинг: 0 / 0
Кластерный индекс как в MSSQL
    #32062411
Guest1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько реально незнаю, по крайней мере в списках он есть. Из описания хеш-кластеров(не путать с кластерами, создающимися для ускорения доступа для сильно связанных таблиц) я понял что это наиболее близко,
проблема в том что я так и не понял как уже созданную и заполненную таблицу засунуть в это хеш-кластер

или я че то не понимаю (просьба сильно не бить :))
...
Рейтинг: 0 / 0
Кластерный индекс как в MSSQL
    #32062539
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если кому-то это еще интересно, то
"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."
...
Рейтинг: 0 / 0
Кластерный индекс как в MSSQL
    #32063041
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Guest1

Хэш-кластер обычно применяется для статичных таблиц, где можно подобрать свою или использовать встроенную хэш-функцию. Смысл в том, что имея значение из хэш-столбца, через хэш-функцию вы сразу получаете адрес искомого блока данных. Т.е. за одну операцию чтения вы сразу извлекаете данные. Если использовать индекс, то понадобится как минимум 2 операции чтения. Если таблица будет расти, то хэш-функция будет давать промахи. Уже существующую таблицу преобразовать в кластер нельзя, его нужно создать насколько я помню.
...
Рейтинг: 0 / 0
Кластерный индекс как в MSSQL
    #32063047
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Glory

Если я правильно понял, то структура B*Tree индексов в Oracle и MS идентична. MS page == Oracle block. Вопрос по ходу...чем определяется размер страницы в МS? какие размеры могут быть у страницы?

А MS clustered index == Oracle Index Orginized Table. Т.е. у кластеред индекса нет соответствующей таблицы, где хранятся данные, т.е. все данные полностью хранятся в leaf pages. Я правильно понял?
...
Рейтинг: 0 / 0
Кластерный индекс как в MSSQL
    #32063095
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чем определяется размер страницы в МS? какие размеры могут быть у страницы?
Размер страницы жестко задан и составляет 8Kb из которых под данные может быть использовано 8060 bytes.

Т.е. у кластеред индекса нет соответствующей таблицы, где хранятся данные, т.е. все данные полностью хранятся в leaf pages. Я правильно понял?
Да, кластерный индекс и есть собственно сама физически упорядоченная таблица + B-дерево
...
Рейтинг: 0 / 0
Кластерный индекс как в MSSQL
    #32063116
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
теперь понятно.
а можно ли в МС на clustered index навесить еще индексы по другим полям?
...
Рейтинг: 0 / 0
Кластерный индекс как в MSSQL
    #32063130
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 killed
Я слабо представляю что значит "на clustered index навесить еще индексы по другим полям". Но если имеется в виду можно ли создавать еще индексы по таблице с кластерным интексом - то можно, но кластерный индекс естественно может быть только один.

Кстати cluster переводится как пучок, гроздь, ничего удивительного в названии индекса кластеным я не вижу.
...
Рейтинг: 0 / 0
Кластерный индекс как в MSSQL
    #32063170
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"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 ."
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Кластерный индекс как в MSSQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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