|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Допустим есть таблица без PK и по одному из её полей построен индекс. Как происходит операция Index Seek на самом нижнем уровне? Проходим по узлам дерева до листьев, а там лежит служебное rowid и номер страницы в которой искомая запись, и по этому номеру страницы вычисляем смещение с которого нужно прочитать данные из файла БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2011, 01:17 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Ну и интересует как это реализовано в различных СУБД и есть ли принципиальные отличия? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2011, 01:18 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2011, 08:26 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
On 17.08.2011 2:18, Index Seek wrote: > Ну и интересует как это реализовано в различных СУБД и есть ли принципиальные > отличия? В разных СУБД по-разному. Есть принципиальные отличия. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2011, 09:48 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
pkarklin, спасибо! MasterZiv Ок. А какие основные отличия? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2011, 14:34 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Index Seekи по этому номеру страницы вычисляем смещение с которого нужно прочитать данные из файла БД? смещение, конечно, да, но обычно имеется в виду размер_страницы * номер_страницы . И читаются обычно страницы целиком. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2011, 10:51 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
On 17.08.2011 15:34, Index Seek wrote: > MasterZiv > Ок. А какие основные отличия? В общем-то кратко -- два подхода: хранить в листах индекса ROWID -- некий физический адрес, по которому можно найти запись (типа НОМЕР_ФАЙЛА:НОМЕР_СТРАНИЦЫ::НОМЕР_ЗАПИСИ). В таком случае после поиска индексной записи в индексе производится чтение записи по физическому адресу. хранить в листах индекса значения полей уникального кластерного индекса -- первичного ключа таблицы. В таком случае после поиска индексной записи значения PK используются для повторного поиска нужной индексной записи в первичном ключе таблицы, в листах которого находится уже физически запись со всей строкой. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2011, 11:52 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
MasterZivВ общем-то кратко -- два подхода:Как я понял, человек спрвшивает про варианты реализации в первом случае. Index Seekа там лежит служебное rowid и номер страницы в которой искомая запись, и по этому номеру страницы вычисляем смещение с которого нужно прочитать данные из файла БД?В MSSQL rowid и означает номер страницы. В других СУБД - не знаю... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2011, 16:15 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
alexeyvgВ MSSQL rowid и означает номер страницы. О как... Одна запись на страницу? Шикарно живёте... Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2011, 16:33 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovО как... Одна запись на страницу? Шикарно живёте... http://msdn.microsoft.com/ru-ru/library/ms190969%28v=SQL.100%29 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2011, 17:03 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
On 19.08.2011 17:15, alexeyvg wrote: > В MSSQL rowid и означает номер страницы. В других СУБД - не знаю... В MSSQL rowid и означает номер страницы и номер записи на этой странице. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2011, 18:11 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovalexeyvgВ MSSQL rowid и означает номер страницы. О как... Одна запись на страницу? Шикарно живёте... это он пошутил так Указатель строится на основе идентификатора файла (ID), номера страницы и номера строки на странице. Весь указатель целиком называется идентификатором строки (RID). ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2011, 18:17 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
MasterZiv хранить в листах индекса значения полей уникального кластерного индекса -- первичного ключа таблицы. В таком случае после поиска индексной записи значения PK используются для повторного поиска нужной индексной записи в первичном ключе Ну, "уникальный кластерный индекс" - вещь сама по себе весьма небесспорная, но просто интересно - где на практике применяется описанный угробищный подход? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2011, 19:34 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
softwarerпросто интересно - где на практике применяется описанный угробищный подход? Paradox. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2011, 19:52 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovsoftwarerпросто интересно - где на практике применяется описанный угробищный подход? Paradox. (побрызгал святой водой) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2011, 19:53 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
softwarerпросто интересно - где на практике применяется описанный угробищный подход? Если убрать слово "кластерный", то это Мускль+ИнноДБ. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2011, 20:08 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
tanglirsoftwarerпросто интересно - где на практике применяется описанный угробищный подход? Если убрать слово "кластерный", то это Мускль+ИнноДБ.И, кстати, IOT-ы в Оракле разве не также сделаны? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2011, 20:11 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
miksofttanglirпропущено... Если убрать слово "кластерный", то это Мускль+ИнноДБ.И, кстати, IOT-ы в Оракле разве не также сделаны? А хз, если честно. Я не зря сказал "на практике", потому как мелькнула та же мысль :) IOT-ы в оракле используются не то чтобы часто, и совершенно точно с однозначной рекомендацией "без левых индексов". ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2011, 20:20 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
miksoftИ, кстати, IOT-ы в Оракле разве не также сделаны? Посмотрел, как. Да нет, таки заметно получше :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2011, 20:26 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
softwarermiksoftИ, кстати, IOT-ы в Оракле разве не также сделаны? Посмотрел, как. Да нет, таки заметно получше :)Можно в двух словах разницу? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2011, 20:28 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
miksoftМожно в двух словах разницу? Если над IOT строится вторичный индекс, то его значением является UROWID, включающее в себя как физический адрес блока, так и представление первичного ключа. При доступе по вторичному индексу СУБД берёт адрес, дёргает блок, и если не находит в нём нужной записи, то использует представление для поиска по базовому индексу. Таким образом до тех пор, пока строчки в IOT не начинают часто мигрировать, доступ к ним оказывается вполне эффективным. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2011, 20:32 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
softwarerUROWID, включающее в себя как физический адрес блока , так и представление первичного ключа.Про этот момент забыл. Тогда согласен, что в Оракле оно получше сделано :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2011, 20:35 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
On 08/19/2011 08:34 PM, softwarer wrote: > Ну, "уникальный кластерный индекс" - вещь сама по себе весьма небесспорная, но > просто интересно - где на практике применяется описанный угробищный подход? Про небесспорность абсолютно согласен, потребители такого подхода (что я знаю) -- MSSQLServer, InnoDB. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2011, 23:36 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
On 08/19/2011 09:08 PM, tanglir wrote: > Если убрать слово "кластерный", то это Мускль+ИнноДБ. Зачем убирать ? В InnoDB вообще-то других индексов, кроме кластерных, вообще не существует. Там всё в одном здоровом индексном дереве. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2011, 23:38 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
On 08/19/2011 09:32 PM, softwarer wrote: > базовому индексу. Таким образом до тех пор, пока строчки в IOT не начинают часто > мигрировать, доступ к ним оказывается вполне эффективным. Как IOT расшифровывается? Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2011, 00:22 |
|
|
start [/forum/topic.php?fid=35&msg=37404115&tid=1552222]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 165ms |
0 / 0 |