Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4   вперед  Ctrl      все
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
Index Seek
Guest
ScareCrow
автор
Имеется ввиду кластерные таблицы в определениях Oracle?

да это везде так, потому что по другому не сделаешь. хотя коллега софтварер говорит что в Оракле еще и указатель на страницу хранится.
p.s. чем больше узнаю про оракл тем больше удивляюсь - как он вообще умудряется работать?

В кластерных таблицах указатель на страницу хранится? Это скорей всего нигде так.
Кластерные таблицы - это физически сджойненные таблицы, а логически отдельные. Не совсем понятно как они относятся к индексам в InnoDB.
24 авг 11, 13:53    [11171200]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
по-моему разница только в том в каком порядке располагаются данные

Картинка с другого сайта.
ссылка
24 авг 11, 14:12    [11171376]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709

On 23.08.2011 15:51, Index Seek wrote:

> Два индекса содержащие в листьях значения индексных полей или включенных полей
> кластерного индекса?
> (Индексные - это которые отсортированы в кластерном, включенные - нет)
>
> " и два индекса (можно сказать -- кластерные таблицы)"
> Имеется ввиду кластерные таблицы в определениях Oracle?

Это я так сказал, чтобы было понятнее. Но видно получилось наоборот.

Там будут три индекса, один кластерный, и два обычных,
два последних в листах будут содержать ссылки на записи в виде
значений полей кластерного индекса (PK) этой таблицы.



Posted via ActualForum NNTP Server 1.4

24 авг 11, 14:17    [11171408]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709

On 24.08.2011 14:53, Index Seek wrote:

> В кластерных таблицах указатель на страницу хранится? Это скорей всего нигде так.

В кластерных индексах храняться сами данные.

Posted via ActualForum NNTP Server 1.4

24 авг 11, 14:20    [11171430]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
Index Seek
Guest
SergSuper, да, индекс так и выглядит. А вывод то какой?

MasterZiv
On 23.08.2011 15:51, Index Seek wrote:

> Два индекса содержащие в листьях значения индексных полей или включенных полей
> кластерного индекса?
> (Индексные - это которые отсортированы в кластерном, включенные - нет)
>
> " и два индекса (можно сказать -- кластерные таблицы)"
> Имеется ввиду кластерные таблицы в определениях Oracle?

Это я так сказал, чтобы было понятнее. Но видно получилось наоборот.

Там будут три индекса, один кластерный, и два обычных,
два последних в листах будут содержать ссылки на записи в виде
значений полей кластерного индекса (PK) этой таблицы.

Ну это везде так, на сколько я помню. В MS SQL точно.
А вот приписывают ли ещё в листьях обычных индексов рядом с номером PK и номер страницы?
24 авг 11, 14:56    [11171786]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
чукотский мальчик
Guest
Index Seek
Имеется ввиду кластерные таблицы в определениях Oracle?
В Oracle нет кластерных таблиц. Есть кластеризованные таблицы (clustered table)
24 авг 11, 18:44    [11173528]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
Index Seek
Guest
чукотский мальчик
Index Seek
Имеется ввиду кластерные таблицы в определениях Oracle?
В Oracle нет кластерных таблиц. Есть кластеризованные таблицы (clustered table)

Точно, спасибо. Залетало все в 2 раза быстрее.
24 авг 11, 18:56    [11173579]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
мальчик с Чукотуи
Guest
Index Seek
Залетало все в 2 раза быстрее.
Ага, смешно

Index Seek
Кстати в Оракле можно делать кластерные IOT, по аналогии с кластерными таблицами (не путать с кластерным индексом)?
Нет
24 авг 11, 19:35    [11173737]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32174
Index Seek
alexeyvg
пропущено...
Новички часто путают ПК и кластерный индекс (про разницу кластерного индекса и уникального кластерного индекса я вообще молчу - это для лысых профессоров :-) )

Надеюсь я ничего не напутал?
Да, вот это:
Index Seek
PK в MS SQL - всегда есть кластерный индекс.

softwarer
Index Seek
А где там в Оракле удваивается размер индекса?

Да Вы не беспокойтесь, коллега так спешит писать, что не успевает читать. Где уж тут думать...
Ну, это про то, что в оракле в индексах:
softwarer
UROWID, включающее в себя как физический адрес блока, так и представление первичного ключа.
хотя конечно про удвоение я погорячился :-)
24 авг 11, 20:55    [11174002]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32174
Index Seek
А вот приписывают ли ещё в листьях обычных индексов рядом с номером PK и номер страницы?
В сиквеле нет.
24 авг 11, 20:57    [11174010]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
Index Seek
Guest
alexeyvg
Index Seek
пропущено...

Надеюсь я ничего не напутал?
Да, вот это:
Index Seek
PK в MS SQL - всегда есть кластерный индекс.

softwarer
пропущено...

Да Вы не беспокойтесь, коллега так спешит писать, что не успевает читать. Где уж тут думать...
Ну, это про то, что в оракле в индексах:
softwarer
UROWID, включающее в себя как физический адрес блока, так и представление первичного ключа.
хотя конечно про удвоение я погорячился :-)

Т.е. в Oracle в листьях индекса хранится как физический адрес блока, так и представление первичного ключа, а в MS SQL только представление первичного ключа?

Собственно и в MySQL тоже только представление первичного ключа?
24 авг 11, 20:58    [11174020]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32174
Index Seek
Т.е. в Oracle в листьях индекса хранится как физический адрес блока, так и представление первичного ключа, а в MS SQL только представление первичного ключа?
Да, по крайней мере в сиквеле, про другие СУБД не могу сказать.
24 авг 11, 22:36    [11174307]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709

On 24.08.2011 21:58, Index Seek wrote:

> Т.е. в Oracle в листьях индекса хранится как физический адрес блока, так и
> представление первичного ключа, а в MS SQL только представление первичного ключа?

В MSSQL Server -- да, в листьях хранится значение кластерного индекса, если он
есть, а если его нет -- физический адрес строки. PK в MSSQL может быть
кластерным и нет, но общая практика делать его суррогатным, маленьким и кластерным.

> Собственно и в MySQL тоже только представление первичного ключа?

Да, и там то же самое. Только там надо различать таблицы InnoDB и myISAM. В
MyISAM я честно говоря не знаю как.

Posted via ActualForum NNTP Server 1.4

24 авг 11, 23:11    [11174453]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67463
Блог
ScareCrow
p.s. чем больше узнаю про оракл тем больше удивляюсь - как он вообще умудряется работать?

Если одним словом, то замечательно.
29 авг 11, 00:10    [11192813]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
qwwq
Member

Откуда:
Сообщений: 2894
MasterZiv
On 24.08.2011 14:53, Index Seek wrote:

> В кластерных таблицах указатель на страницу хранится? Это скорей всего нигде так.

В кластерных индексах храняться сами данные.

т.е. доступ по "вторичному индексу" -- не адресный, а индекс--сик в праймари дереве по-значению.

и сколько в среднем дополнительных чтений набегает ?

или старый адрес там пишут, а если что не так -- бегут по-значению ?

а как в инно-беде ?
20 апр 18, 22:30    [21356061]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
mayton
Member

Откуда: loopback
Сообщений: 53004
softwarer
Index Seek
А в чем угробищность подхода например?

В том, что для индекса, например, глубины 5, нужно аж 10 чтений, чтобы добраться до искомых данных.

В Oracle я не видел индексов глубиной 5. Использую индекс по SYS_GUID (36 символов) и таблицу в 50 млн строк
и этот индекс - в 3 уровня. И то третий уровень еще далеко себя не исчерпал.
21 апр 18, 07:49    [21356519]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
ScareCrow
Member

Откуда: Белый город
Сообщений: 17472
автор
В том, что для индекса, например, глубины 5, нужно аж 10 чтений, чтобы добраться до искомых данных.


пока это не мешает ни MYSQL ни MS SQL кластеризовать таблицы по умолчанию.
24 апр 18, 19:41    [21365822]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3795
qwwq
MasterZiv
On 24.08.2011 14:53, Index Seek wrote:

> В кластерных таблицах указатель на страницу хранится? Это скорей всего нигде так.

В кластерных индексах храняться сами данные.

т.е. доступ по "вторичному индексу" -- не адресный, а индекс--сик в праймари дереве по-значению.

и сколько в среднем дополнительных чтений набегает ?

или старый адрес там пишут, а если что не так -- бегут по-значению ?

а как в инно-беде ?

в MySQL и в MSSQL обычные(вторичные) индексы указывают на кластерный (первичный).
в PostgreSQL - на саму запись непосредственно (rowid).
Разница в том что в первом случае есть лишние seek при чтении, но при апдейте вторичные индесы не торгаются,
а во втором случае - никаких лишних чтений при чтении, но зато есть лишние обновления всех индексах при апдейте полей даже не входящих во вторичные индексы.

p.s. с этой точки зрения идеален оракл, где индексы всегда указывают на rowid, и при этом не требуют обновления при апдейте полей не входящих в этот индекс, т.к. rowid не меняется в отличии От Postgres
25 апр 18, 09:49    [21366763]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
qwwq
Member

Откуда:
Сообщений: 2894
Ivan Durak,

про пж я знаю.
про мсскл и мускул интересно -- лишние чтения на чтении. т.е. на олап--задачах. хм.

то , что оракл "не настоящий версионник" -- тоже знаю.


про пж думаю есть способ расширить идею хот-а на все случаи оставления записи на страничке. надо "сегментик разадресации" на каждой страничке данных заложить. т.е. 1 запись на странице сделать другого формата (не кучного) -- скажем под пары vid<->tid этой странички. и только переполз записи на другую страницу вызовет каскад изменений в инд-е. (или в прокладке, ежели оную изобресть). но как-то все поздновато. винты скоро отойдут . и мы тоже станем анахронизмом.
25 апр 18, 12:19    [21367342]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3795
да все это уже анахронизм, под olap задачи работают MPP субд типа вертики или терадаты или вообще хайв, где индексы вообще днем с огнем
25 апр 18, 14:06    [21367770]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
H5N1
Member

Откуда: Yo.! из "Сравнения субд"
Сообщений: 604
qwwq
Ivan Durak,

про пж я знаю.
про мсскл и мускул интересно -- лишние чтения на чтении. т.е. на олап--задачах. хм.

то , что оракл "не настоящий версионник" -- тоже знаю.


про пж думаю есть способ расширить идею хот-а на все случаи оставления записи на страничке. надо "сегментик разадресации" на каждой страничке данных заложить. т.е. 1 запись на странице сделать другого формата (не кучного) -- скажем под пары vid<->tid этой странички. и только переполз записи на другую страницу вызовет каскад изменений в инд-е. (или в прокладке, ежели оную изобресть). но как-то все поздновато. винты скоро отойдут . и мы тоже станем анахронизмом.

чего ламеры не придумают, лишь бы не делать сразу правильно нормальный оракловый UNDO.
проблема пж - мусор прямо в датафайлах, мусор надо выносить, а не костыли выдумывать.
25 апр 18, 15:47    [21368299]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54794

H5N1
чего ламеры не придумают, лишь бы не делать сразу правильно нормальный оракловый UNDO.

Это тот самый UNDO, с которым rollback занимает больше времени, чем вся предыдущая
транзакция? Ну, у каждого своё понятие о норме.

Posted via ActualForum NNTP Server 1.5

25 апр 18, 16:29    [21368497]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67463
Блог
Dimitry Sibiryakov
Это тот самый UNDO, с которым rollback занимает больше времени, чем вся предыдущая
транзакция? Ну, у каждого своё понятие о норме.

Конечно. Те проектировщики, для которых главной и наиболее частой операцией является rollback, вольны выбирать и прочие оригинальные понятия вместе с соответствующими инструментами.
25 апр 18, 16:51    [21368594]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
qwwq
Member

Откуда:
Сообщений: 2894
H5N1
qwwq
Ivan Durak,

про пж я знаю.
про мсскл и мускул интересно -- лишние чтения на чтении. т.е. на олап--задачах. хм.

то , что оракл "не настоящий версионник" -- тоже знаю.


про пж думаю есть способ расширить идею хот-а на все случаи оставления записи на страничке. надо "сегментик разадресации" на каждой страничке данных заложить. т.е. 1 запись на странице сделать другого формата (не кучного) -- скажем под пары vid<->tid этой странички. и только переполз записи на другую страницу вызовет каскад изменений в инд-е. (или в прокладке, ежели оную изобресть). но как-то все поздновато. винты скоро отойдут . и мы тоже станем анахронизмом.

чего ламеры не придумают, лишь бы не делать сразу правильно нормальный оракловый UNDO.
проблема пж - мусор прямо в датафайлах, мусор надо выносить, а не костыли выдумывать.


если б криэторы аракала выносили за собой мусор, на ора--скл можно было писать так же легко и свободно как в пж--диалекте.
но вместо этого посадили аскать тома и аськают по сю пору бедного.


т.ч. делать из пж ещё один "блокировочник" с андо не надо. типа "оракел, только маленький."
надо лучше
25 апр 18, 18:23    [21368868]     Ответить | Цитировать Сообщить модератору
 Re: Как происходит операция Index Seek на самом нижнем уровне?  [new]
mayton
Member

Откуда: loopback
Сообщений: 53004
qwwq,

А кто настоящий версионник?
25 апр 18, 19:43    [21369054]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить