|
Как происходит операция 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 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
MasterZivКак IOT расшифровывается? В Вашей терминологии это таблица с единственным кластерным индексом. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2011, 01:17 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
MasterZivOn 08/19/2011 09:08 PM, tanglir wrote: > Если убрать слово "кластерный", то это Мускль+ИнноДБ. Зачем убирать ? В InnoDB вообще-то других индексов, кроме кластерных, вообще не существует. Там всё в одном здоровом индексном дереве. Это как в InnoDB, делаем на таблицу три индекса и получаем три копии таблицы отсортированные в порядке своих индексов? Кластерный индекс это когда строится дерево по индексу, а в его листьях расположены остальные столбцы, как например PK в MS SQL. Тут ещё важно что они в базе лежат в порядке индекса для последовательного чтения с диска. Но кластерный может быть только один индекс на таблицу, остальные обычные с указателями RID в листьях. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2011, 01:59 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
softwarerНу, "уникальный кластерный индекс" - вещь сама по себе весьма небесспорная, но просто интересно - где на практике применяется описанный угробищный подход? А в чем угробищность подхода например? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2011, 02:01 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Index SeekКластерный индекс это когда строится дерево по индексу, а в его листьях расположены остальные столбцы, как например PK в MS SQL.PK то здесь причем?.. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2011, 20:18 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
softwarerMasterZiv хранить в листах индекса значения полей уникального кластерного индекса -- первичного ключа таблицы. В таком случае после поиска индексной записи значения PK используются для повторного поиска нужной индексной записи в первичном ключе Ну, "уникальный кластерный индекс" - вещь сама по себе весьма небесспорная, но просто интересно - где на практике применяется описанный угробищный подход? Нормальный метод, используется в сиквеле. Если он по каким-то причинам не подходит, можно не использовать. Но чаще всего это очень эффективно. Потому как не нужно перестраивать индексы при расщеплении страниц, не нужно удваивать размер индекса и делать по 2 чтения, как в оракле, и к тому же часто бывает, что обращение к страницам вообще не нужно, достаточно обращения к индексу. Dimitry SibiryakovalexeyvgВ MSSQL rowid и означает номер страницы. О как... Одна запись на страницу? Шикарно живёте... Нет, конечно, не одна. Это вообще был ответ на вопрос Index Seek. Имеется в виду, что в rowid уже есть вся необходимая информация, и искать ничего не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2011, 22:24 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
SergSuperIndex SeekКластерный индекс это когда строится дерево по индексу, а в его листьях расположены остальные столбцы, как например PK в MS SQL.PK то здесь причем?.. Новички часто путают ПК и кластерный индекс (про разницу кластерного индекса и уникального кластерного индекса я вообще молчу - это для лысых профессоров :-) ) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2011, 22:26 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
alexeyvgПотому как не нужно перестраивать индексы при расщеплении страниц Это при расщеплении каких страниц перестраиваются индексы?... Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2011, 23:23 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
SergSuperIndex SeekКластерный индекс это когда строится дерево по индексу, а в его листьях расположены остальные столбцы, как например PK в MS SQL .PK то здесь причем?.. Это "как например". PK в MS SQL - всегда есть кластерный индекс. alexeyvgSergSuperпропущено... PK то здесь причем?.. Новички часто путают ПК и кластерный индекс (про разницу кластерного индекса и уникального кластерного индекса я вообще молчу - это для лысых профессоров :-) ) Надеюсь я ничего не напутал? alexeyvgНо чаще всего это очень эффективно. Потому как не нужно перестраивать индексы при расщеплении страниц, не нужно удваивать размер индекса и делать по 2 чтения, как в оракле, и к тому же часто бывает, что обращение к страницам вообще не нужно, достаточно обращения к индексу. А где там в Оракле удваивается размер индекса? Кстати в Оракле можно делать кластерные IOT, по аналогии с кластерными таблицами (не путать с кластерным индексом)? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2011, 00:24 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Index SeekА в чем угробищность подхода например? В том, что для индекса, например, глубины 5, нужно аж 10 чтений, чтобы добраться до искомых данных. Index SeekА где там в Оракле удваивается размер индекса? Да Вы не беспокойтесь, коллега так спешит писать, что не успевает читать. Где уж тут думать... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2011, 00:33 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Index SeekSergSuperпропущено... PK то здесь причем?.. Это "как например". PK в MS SQL - всегда есть кластерный индекс. вобще-то не обязательно Но PK - это логическое понятие, а тут разговор о физическом хранении ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2011, 01:13 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
softwarerIndex SeekА в чем угробищность подхода например? В том, что для индекса, например, глубины 5, нужно аж 10 чтений, чтобы добраться до искомых данных. А можно чуть подробней? Или вы имеете ввиду при доступе к данным IOT/(таблицы с кластерным индексом) не по кластерному индексу, а по обычному? Я думаю там в листьях тоже есть информация о номере страницы с данными, навряд ли стали бы они так криво делать. А если имеете ввиду именно кластерный индекс, то в обычном индексе в листьях находится RID по которому нужно ещё прочитать данные из таблицы, а в кластерном/IOT в листьях сами данные. Мало того при IOS мы последовательно читаем, а не рандомно. Например IOS нету в PostgreSQL и Firebird, там SELECT name FROM table ORDER BY id выгоднее делать сортировку чем использовать индекс по ID, как раз по описанной выше причине. По крайне мере в Firebird по этому поводу целая статья была. SergSuperIndex Seekпропущено... Это "как например". PK в MS SQL - всегда есть кластерный индекс. вобще-то не обязательно Но PK - это логическое понятие, а тут разговор о физическом хранении А можно пример как создать PK в MS SQL чтобы он не был кластерным индексом? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2011, 01:35 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Index SeekИли вы имеете ввиду ... Я думаю Я имею в виду реализацию, описанную Master Ziv-ом на прошлой странице. Index Seekтам SELECT name FROM table ORDER BY id выгоднее делать сортировку чем использовать индекс по ID Запросы с order by id - вещь редкая, не то чтобы нужная, но из общих соображений я бы отметил, что в них сортировка будет выгоднее индекса всегда, когда нет гарантии в том, что записи вставлялись строго по возрастанию. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2011, 01:52 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
softwarerIndex SeekИли вы имеете ввиду ... Я думаю Я имею в виду реализацию, описанную Master Ziv-ом на прошлой странице. Index Seekтам SELECT name FROM table ORDER BY id выгоднее делать сортировку чем использовать индекс по ID Запросы с order by id - вещь редкая, не то чтобы нужная, но из общих соображений я бы отметил, что в них сортировка будет выгоднее индекса всегда, когда нет гарантии в том, что записи вставлялись строго по возрастанию. А ну что Master Ziv сказал я вообще не понял, надеюсь разъяснит. "Запросы с order by id" это как пример. В реальности это круто скажется при SMJ, с допустим подсчетом агрегатов. В Firebird он начнет дергать таблицу в независимости от того что индекс покрывающий. IOS по IOT позволит избежать random read, в отличие от index key lookup. А IOT по сравнению с обычным покрывающим индексом позволит исключить затраты на сортировку по ненужным столбцам, допустим по которым идет подсчет агрегатов. Собственно для этого например в MS SQL есть включенные столбцы и кластерный индекс, а в Oracle - IOT. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2011, 02:09 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Index SeekВ реальности это круто скажется при SMJ, с допустим подсчетом агрегатов. Не возьмусь отгадывать, что такое SMJ. Index SeekВ Firebird он начнет дергать таблицу в независимости от того что индекс покрывающий. Мне так смутно помнится, что в IB/FB у индексов хитрая версионность, которая идеологически мешает в некоторых случаях их использовать. Index SeekIOS по IOT позволит избежать random read, в отличие от index key lookup. Если IOS - это что-нибудь типа Index Order Scan, то фокус как раз в том, что оно далеко не всегда лучшее решение. Когда расщепляется страница в середине индекса, у сервера есть фактически два варианта: либо передвигать пол-индекса, либо записать новую страницу куда-нибудь в конец, то есть нарушить порядок следования страниц в индексе. Когда после этого производится массовое чтение по [покрывающему] индексу, то "считать индекс от начала до конца и отсортировать" скорее всего будет быстрее, нежели постранично считывать его в нужном порядке. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2011, 02:21 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Index SeekА можно пример как создать PK в MS SQL чтобы он не был кластерным индексом?нет ничего проще: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2011, 02:48 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
softwarerIndex SeekIOS по IOT позволит избежать random read, в отличие от index key lookup. Если IOS - это что-нибудь типа Index Order Scan, то фокус как раз в том, что оно далеко не всегда лучшее решение. Когда расщепляется страница в середине индекса, у сервера есть фактически два варианта: либо передвигать пол-индекса, либо записать новую страницу куда-нибудь в конец, то есть нарушить порядок следования страниц в индексе. Когда после этого производится массовое чтение по [покрывающему] индексу, то "считать индекс от начала до конца и отсортировать" скорее всего будет быстрее, нежели постранично считывать его в нужном порядке. SMJ - Sort Merge Join. Бывает что и Fast Full Index Scan с сортировкой быстрее чем Full Index Scan по сильно фрагментированному индексу. Если это OLTP, то там и данных и запросов таких мало. Если DWH, то индексы обычно в хорошем состоянии. Но в приведенном мною примере если и случиться FFIS, то не с сортировкой, а с HASH JOIN и HASH MATCH. А вот если зададим в предикатах WHERE диапазоны то приехали, сортировка. Ну а сортировка по фактам DWH вообще унылое зрелище, если только не секционирована по этому полю. Собственно с диапазонами в предикатах WHERE в Exadata идет FFIS со спасительным Smart Scan. А дальше HJ/HM. Не знаю насколько в Firebird отсутствие IOS связано с версионностью :) Но там соответственно не возможно и Fast Full Index Scan. И нету спасительных в этом случае HASH JOIN с HASH MATCH. Ну представьте таблицу в 10 ТБ, либо всю сортировать во внешней памяти, либо всю в random read дергать :) Это сутки. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2011, 03:01 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
egorych , круто :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2011, 03:05 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Index SeekНу представьте таблицу в 10 ТБ, либо всю сортировать во внешней памяти, либо всю в random read дергать :) Это сутки. Боюсь, что разработчика, написавшего такой запрос, убьют независимо от используемой СУБД... Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2011, 13:37 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovIndex SeekНу представьте таблицу в 10 ТБ, либо всю сортировать во внешней памяти, либо всю в random read дергать :) Это сутки. Боюсь, что разработчика, написавшего такой запрос, убьют независимо от используемой СУБД... Если вы про который я написал, то соединение со справочником и агрегированием по фактам входит почти в любой запрос к DWH и на нормальных СУБД он выполнится за несколько десятков минут. С матвью за минуту. Или вы про то что его можно выполнить в Firebird за то же время? Расскажите как. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2011, 14:12 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Index Seekсоединение со справочником и агрегированием по фактам входит почти в любой запрос к DWH И почти любой запрос к DWH молотит террабайты данных? Я думал для этого давно придумали свёртку в OLAP кубы. И Firebird, вообще-то, не претендует на использование в DWH. У неё другая ниша. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2011, 14:28 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovIndex Seekсоединение со справочником и агрегированием по фактам входит почти в любой запрос к DWH И почти любой запрос к DWH молотит террабайты данных? Я думал для этого давно придумали свёртку в OLAP кубы. И Firebird, вообще-то, не претендует на использование в DWH. У неё другая ниша. А в результате какого запроса получается свёртка в OLAP кубы? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2011, 14:42 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Index SeekА в результате какого запроса получается свёртка в OLAP кубы? :) Разве они обновляются целиком, а не копятся инкрементально?.. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2011, 15:56 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
On 20.08.2011 2:59, Index Seek wrote: > Это как в InnoDB, делаем на таблицу три индекса и получаем три копии таблицы > отсортированные в порядке своих индексов? Нет, конечно. Один кластерный индекс, и два индекса (можно сказать -- кластерные таблицы), содержащие в листах значения полей кластерного индекса. > Кластерный индекс это когда строится дерево по индексу, а в его листьях > расположены остальные столбцы, как например PK в MS SQL. Тут ещё важно что они в > базе лежат в порядке индекса для последовательного чтения с диска. > Но кластерный может быть только один индекс на таблицу, остальные обычные с > указателями RID в листьях. Спасибо за информацию. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2011, 12:05 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
MasterZivOn 20.08.2011 2:59, Index Seek wrote: > Это как в InnoDB, делаем на таблицу три индекса и получаем три копии таблицы > отсортированные в порядке своих индексов? Нет, конечно. Один кластерный индекс, и два индекса (можно сказать -- кластерные таблицы), содержащие в листах значения полей кластерного индекса. Два индекса содержащие в листьях значения индексных полей или включенных полей кластерного индекса? (Индексные - это которые отсортированы в кластерном, включенные - нет) " и два индекса (можно сказать -- кластерные таблицы)" Имеется ввиду кластерные таблицы в определениях Oracle? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2011, 14:51 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
авторИмеется ввиду кластерные таблицы в определениях Oracle? да это везде так, потому что по другому не сделаешь. хотя коллега софтварер говорит что в Оракле еще и указатель на страницу хранится. p.s. чем больше узнаю про оракл тем больше удивляюсь - как он вообще умудряется работать? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2011, 11:00 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
ScareCrowавторИмеется ввиду кластерные таблицы в определениях Oracle? да это везде так, потому что по другому не сделаешь. хотя коллега софтварер говорит что в Оракле еще и указатель на страницу хранится. p.s. чем больше узнаю про оракл тем больше удивляюсь - как он вообще умудряется работать? В кластерных таблицах указатель на страницу хранится? Это скорей всего нигде так. Кластерные таблицы - это физически сджойненные таблицы, а логически отдельные. Не совсем понятно как они относятся к индексам в InnoDB. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2011, 13:53 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2011, 14:12 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
On 23.08.2011 15:51, Index Seek wrote: > Два индекса содержащие в листьях значения индексных полей или включенных полей > кластерного индекса? > (Индексные - это которые отсортированы в кластерном, включенные - нет) > > " и два индекса (можно сказать -- кластерные таблицы)" > Имеется ввиду кластерные таблицы в определениях Oracle? Это я так сказал, чтобы было понятнее. Но видно получилось наоборот. Там будут три индекса, один кластерный, и два обычных, два последних в листах будут содержать ссылки на записи в виде значений полей кластерного индекса (PK) этой таблицы. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2011, 14:17 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
On 24.08.2011 14:53, Index Seek wrote: > В кластерных таблицах указатель на страницу хранится? Это скорей всего нигде так. В кластерных индексах храняться сами данные. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2011, 14:20 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
SergSuper , да, индекс так и выглядит. А вывод то какой? MasterZivOn 23.08.2011 15:51, Index Seek wrote: > Два индекса содержащие в листьях значения индексных полей или включенных полей > кластерного индекса? > (Индексные - это которые отсортированы в кластерном, включенные - нет) > > " и два индекса (можно сказать -- кластерные таблицы)" > Имеется ввиду кластерные таблицы в определениях Oracle? Это я так сказал, чтобы было понятнее. Но видно получилось наоборот. Там будут три индекса, один кластерный, и два обычных, два последних в листах будут содержать ссылки на записи в виде значений полей кластерного индекса (PK) этой таблицы. Ну это везде так, на сколько я помню. В MS SQL точно. А вот приписывают ли ещё в листьях обычных индексов рядом с номером PK и номер страницы? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2011, 14:56 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Index SeekИмеется ввиду кластерные таблицы в определениях Oracle?В Oracle нет кластерных таблиц. Есть кластеризованные таблицы (clustered table) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2011, 18:44 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
чукотский мальчикIndex SeekИмеется ввиду кластерные таблицы в определениях Oracle?В Oracle нет кластерных таблиц. Есть кластеризованные таблицы (clustered table) Точно, спасибо. Залетало все в 2 раза быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2011, 18:56 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Index SeekЗалетало все в 2 раза быстрее.Ага, смешно Index SeekКстати в Оракле можно делать кластерные IOT, по аналогии с кластерными таблицами (не путать с кластерным индексом)?Нет ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2011, 19:35 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Index Seekalexeyvgпропущено... Новички часто путают ПК и кластерный индекс (про разницу кластерного индекса и уникального кластерного индекса я вообще молчу - это для лысых профессоров :-) ) Надеюсь я ничего не напутал?Да, вот это:Index SeekPK в MS SQL - всегда есть кластерный индекс. softwarerIndex SeekА где там в Оракле удваивается размер индекса? Да Вы не беспокойтесь, коллега так спешит писать, что не успевает читать. Где уж тут думать...Ну, это про то, что в оракле в индексах:softwarerUROWID, включающее в себя как физический адрес блока, так и представление первичного ключа.хотя конечно про удвоение я погорячился :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2011, 20:55 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Index SeekА вот приписывают ли ещё в листьях обычных индексов рядом с номером PK и номер страницы?В сиквеле нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2011, 20:57 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
alexeyvgIndex Seekпропущено... Надеюсь я ничего не напутал?Да, вот это:Index SeekPK в MS SQL - всегда есть кластерный индекс. softwarerпропущено... Да Вы не беспокойтесь, коллега так спешит писать, что не успевает читать. Где уж тут думать...Ну, это про то, что в оракле в индексах:softwarerUROWID, включающее в себя как физический адрес блока, так и представление первичного ключа.хотя конечно про удвоение я погорячился :-) Т.е. в Oracle в листьях индекса хранится как физический адрес блока, так и представление первичного ключа, а в MS SQL только представление первичного ключа? Собственно и в MySQL тоже только представление первичного ключа? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2011, 20:58 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Index SeekТ.е. в Oracle в листьях индекса хранится как физический адрес блока, так и представление первичного ключа, а в MS SQL только представление первичного ключа?Да, по крайней мере в сиквеле, про другие СУБД не могу сказать. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2011, 22:36 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
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.08.2011, 23:11 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
ScareCrowp.s. чем больше узнаю про оракл тем больше удивляюсь - как он вообще умудряется работать? Если одним словом, то замечательно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2011, 00:10 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
MasterZivOn 24.08.2011 14:53, Index Seek wrote: > В кластерных таблицах указатель на страницу хранится? Это скорей всего нигде так. В кластерных индексах храняться сами данные. т.е. доступ по "вторичному индексу" -- не адресный, а индекс--сик в праймари дереве по-значению. и сколько в среднем дополнительных чтений набегает ? или старый адрес там пишут, а если что не так -- бегут по-значению ? а как в инно-беде ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2018, 22:30 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
softwarerIndex SeekА в чем угробищность подхода например? В том, что для индекса, например, глубины 5, нужно аж 10 чтений, чтобы добраться до искомых данных. В Oracle я не видел индексов глубиной 5. Использую индекс по SYS_GUID (36 символов) и таблицу в 50 млн строк и этот индекс - в 3 уровня. И то третий уровень еще далеко себя не исчерпал. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2018, 07:49 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
авторВ том, что для индекса, например, глубины 5, нужно аж 10 чтений, чтобы добраться до искомых данных. пока это не мешает ни MYSQL ни MS SQL кластеризовать таблицы по умолчанию. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2018, 19:41 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
qwwqMasterZivOn 24.08.2011 14:53, Index Seek wrote: > В кластерных таблицах указатель на страницу хранится? Это скорей всего нигде так. В кластерных индексах храняться сами данные. т.е. доступ по "вторичному индексу" -- не адресный, а индекс--сик в праймари дереве по-значению. и сколько в среднем дополнительных чтений набегает ? или старый адрес там пишут, а если что не так -- бегут по-значению ? а как в инно-беде ? в MySQL и в MSSQL обычные(вторичные) индексы указывают на кластерный (первичный). в PostgreSQL - на саму запись непосредственно (rowid). Разница в том что в первом случае есть лишние seek при чтении, но при апдейте вторичные индесы не торгаются, а во втором случае - никаких лишних чтений при чтении, но зато есть лишние обновления всех индексах при апдейте полей даже не входящих во вторичные индексы. p.s. с этой точки зрения идеален оракл, где индексы всегда указывают на rowid, и при этом не требуют обновления при апдейте полей не входящих в этот индекс, т.к. rowid не меняется в отличии От Postgres ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 09:49 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Ivan Durak, про пж я знаю. про мсскл и мускул интересно -- лишние чтения на чтении. т.е. на олап--задачах. хм. то , что оракл "не настоящий версионник" -- тоже знаю. про пж думаю есть способ расширить идею хот-а на все случаи оставления записи на страничке. надо "сегментик разадресации" на каждой страничке данных заложить. т.е. 1 запись на странице сделать другого формата (не кучного) -- скажем под пары vid<->tid этой странички. и только переполз записи на другую страницу вызовет каскад изменений в инд-е. (или в прокладке, ежели оную изобресть). но как-то все поздновато. винты скоро отойдут . и мы тоже станем анахронизмом. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 12:19 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
да все это уже анахронизм, под olap задачи работают MPP субд типа вертики или терадаты или вообще хайв, где индексы вообще днем с огнем ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 14:06 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
qwwqIvan Durak, про пж я знаю. про мсскл и мускул интересно -- лишние чтения на чтении. т.е. на олап--задачах. хм. то , что оракл "не настоящий версионник" -- тоже знаю. про пж думаю есть способ расширить идею хот-а на все случаи оставления записи на страничке. надо "сегментик разадресации" на каждой страничке данных заложить. т.е. 1 запись на странице сделать другого формата (не кучного) -- скажем под пары vid<->tid этой странички. и только переполз записи на другую страницу вызовет каскад изменений в инд-е. (или в прокладке, ежели оную изобресть). но как-то все поздновато. винты скоро отойдут . и мы тоже станем анахронизмом. чего ламеры не придумают, лишь бы не делать сразу правильно нормальный оракловый UNDO. проблема пж - мусор прямо в датафайлах, мусор надо выносить, а не костыли выдумывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 15:47 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
H5N1чего ламеры не придумают, лишь бы не делать сразу правильно нормальный оракловый UNDO. Это тот самый UNDO, с которым rollback занимает больше времени, чем вся предыдущая транзакция? Ну, у каждого своё понятие о норме. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 16:29 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЭто тот самый UNDO, с которым rollback занимает больше времени, чем вся предыдущая транзакция? Ну, у каждого своё понятие о норме. Конечно. Те проектировщики, для которых главной и наиболее частой операцией является rollback, вольны выбирать и прочие оригинальные понятия вместе с соответствующими инструментами. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 16:51 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
H5N1qwwqIvan Durak, про пж я знаю. про мсскл и мускул интересно -- лишние чтения на чтении. т.е. на олап--задачах. хм. то , что оракл "не настоящий версионник" -- тоже знаю. про пж думаю есть способ расширить идею хот-а на все случаи оставления записи на страничке. надо "сегментик разадресации" на каждой страничке данных заложить. т.е. 1 запись на странице сделать другого формата (не кучного) -- скажем под пары vid<->tid этой странички. и только переполз записи на другую страницу вызовет каскад изменений в инд-е. (или в прокладке, ежели оную изобресть). но как-то все поздновато. винты скоро отойдут . и мы тоже станем анахронизмом. чего ламеры не придумают, лишь бы не делать сразу правильно нормальный оракловый UNDO. проблема пж - мусор прямо в датафайлах, мусор надо выносить, а не костыли выдумывать. если б криэторы аракала выносили за собой мусор, на ора--скл можно было писать так же легко и свободно как в пж--диалекте. но вместо этого посадили аскать тома и аськают по сю пору бедного. т.ч. делать из пж ещё один "блокировочник" с андо не надо. типа "оракел, только маленький." надо лучше ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 18:23 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
qwwq, А кто настоящий версионник? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 19:43 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
maytonqwwq, А кто настоящий версионник? пойнт не в том что версионник, и не в том что настоящий а в том, что дважды думать одну мысль одним способом неинтересно -- как минимум не производит новых смыслов или хотя бы оттенков но задача честно продумать версионник с долгими версиями в общем доступе при этом не грузящими поверхностных читателей (при наличии места под) -- довольно вызывающая, нет ? (пж сюда не движется. по слухам -- когда то двинулось оттуда) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 22:00 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
qwwqт.ч. делать из пж ещё один "блокировочник" с андо не надо. типа "оракел, только маленький." надо лучше лучше чем в оракл не придумаешь, а оракловый undo в постгресе уже делают http://rhaas.blogspot.com/2018/01/do-or-undo-there-is-no-vacuum.html уберут мусор из датфайлов и индексы трогать не придется, т.к. rownum не будет меняться. интересно, догадаются версионность на блок, а не строку накладывать или на осознание этой фишки еще 30 лет понадобиться ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 22:05 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
авторp.s. с этой точки зрения идеален оракл, где индексы всегда указывают на rowid, и при этом не требуют обновления при апдейте полей не входящих в этот индекс, т.к. rowid не меняется в отличии От Postgres да, только занимают в 2 раза больше места. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 22:58 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
ScareCrowавторp.s. с этой точки зрения идеален оракл, где индексы всегда указывают на rowid, и при этом не требуют обновления при апдейте полей не входящих в этот индекс, т.к. rowid не меняется в отличии От Postgres да, только занимают в 2 раза больше места. В 2 раза больше чем что? Где вообще метрика того сколько должен занимать индекс? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 23:13 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
H5N1qwwqт.ч. делать из пж ещё один "блокировочник" с андо не надо. типа "оракел, только маленький." надо лучше лучше чем в оракл не придумаешь, а оракловый undo в постгресе уже делают http://rhaas.blogspot.com/2018/01/do-or-undo-there-is-no-vacuum.html уберут мусор из датфайлов и индексы трогать не придется, т.к. rownum не будет меняться. интересно, догадаются версионность на блок, а не строку накладывать или на осознание этой фишки еще 30 лет понадобиться ? засланные и пораженцы, однако пораженцы и повторятели задов где нынче рамблер, кстати ? второй гугл только хуже -- не нужен так же не нужен второй аракал хотя если будет как опция выбор движка под таблицу -- не самое плохое про версионность блоков -- хорошая мысль. верная. только думать ее надо не вместо а вместе с версионностью строк на разных масштабах времени самая тяжелая мысль -- многие версии данных требуют многих версий индексов . или же "прокладок" разадресации между индексами и блоками/записями (пример прокладки -- "первично/вторичные" мускула иннодб. или хот--цепочки в пж) никто её честно думать пока не хочет. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 09:47 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
у пж куча других нерешенных проблем, начиная с набившего всем оскомину партицирования. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 10:21 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
qwwqзасланные и пораженцы, однако пораженцы и повторятели задов где нынче рамблер, кстати ? второй гугл только хуже -- не нужен так же не нужен второй аракал хотя если будет как опция выбор движка под таблицу -- не самое плохое можно скулить сколько угодно, но оракл так и останется безусловным лидером, на который ориентируется что майкрософт со своим IL snapshot, что mysql/innodb, что постгрес, что остальные qwwqпро версионность блоков -- хорошая мысль. верная. только думать ее надо не вместо а вместе с версионностью строк на разных масштабах времени самая тяжелая мысль -- многие версии данных требуют многих версий индексов . не требует. в этом и прелесть версионности блока. не важно что это за блок - из таблицы, индекса, блоба или json документа. версионность должна накладывается на блок, блоки лежат в кешах и "старые" блоки доступны какое-то время в кеше. обращение к старым блокам поднимают их в кеше и все происходит логично, понятно и практически без дерганий HDD. опять же это все тут же стройно ложиться на кластер. конечно можно еще 30 лет потерять и как и с UNDO прийти к версионности блоков уже спустя уже 60 лет ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 11:38 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
авторне требует. в этом и прелесть версионности блока. не важно что это за блок - из таблицы, индекса, блоба или json документа. версионность должна накладывается на блок, блоки лежат в кешах и "старые" блоки доступны какое-то время в кеше. обращение к старым блокам поднимают их в кеше и все происходит логично, понятно и практически без дерганий HDD. опять же это все тут же стройно ложиться на кластер. только полезного места в блоках меньше. и слоты транзакций его не добавляют. и многократное дублирование данных появляется, да еще и в REDO. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 13:52 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
ну и есть стопицот вариатров когда версионность нафик не нужна. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 13:55 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Ivan Durakу пж куча других нерешенных проблем, начиная с набившего всем оскомину партицирования. чего чего, а партицируется всё прямыми руками куда как хорошо. вот с планированием на эту кучу добра проблем уже поболе. а это не про партицирование как таковое а про планировщик и его алгоритмы. чего-то не реализовали для простой таблички -- для иерархии уже затык (всякие хитро-мерджи имеются ввиду. но и луз-скан тоже не в коробке. некоторые не реализованные примитивы просто умиляют). т.е. проблема в скудости умейств планировщика даже для простых табличек, перетекающая на иерархиях в засаду. да. что-то можно руками. в пределах разумного. но число быстрых стартов усекается сразу и сильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 17:31 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
H5N1... не требует. в этом и прелесть версионности блока. не важно что это за блок - из таблицы, индекса, блоба или json документа. версионность должна накладывается на блок, блоки лежат в кешах и "старые" блоки доступны какое-то время в кеше. обращение к старым блокам поднимают их в кеше и все происходит логично, понятно и практически без дерганий HDD. опять же это все тут же стройно ложиться на кластер. конечно можно еще 30 лет потерять и как и с UNDO прийти к версионности блоков уже спустя уже 60 летзаучили одну реализацию, и наяриваете как на икону. если уж хотите пользоваться менторским тоном -- потрудитесь разобрать задачу на уровне доказательства утверждений типа "необходимо и достаточно". то, что для чего-то "достаточно" реализации оракла не является доказательством того, что подход оракла единственен и необходим. всё ж довольно просто идеализируется. вот на уровне модели и выводить, что в ней необходимо. а что всего лишь достаточно. и где ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 17:46 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
qwwqто, что для чего-то "достаточно" реализации оракла не является доказательством того, что подход оракла единственен и необходим. Он не единственен и не необходим, он просто удобен и эффективен. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 17:51 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
qwwqзаучили одну реализацию, и наяриваете как на икону. забавно что в течении 15 лет каждый год приходит некто и бросает тут примерно одну и ту же фразу :) лет 10 назад для таких я я написал пост http://oraclemind.blogspot.com/2007/08/blog-post.html ScareCrowтолько полезного места в блоках меньше. и слоты транзакций его не добавляют. и многократное дублирование данных появляется, да еще и в REDO. да. но именно это и превратило оракл в абсолютного лидера с долей rdbms 50%+. блокировки как атрибут блока транзакции позволяют вытеснять их опять же логично и понятно на диск. вместе с блокировками. плюс такая структура блока позволяет воротить полноценный кластер. теперь благодаря этому у оракла одного реальный кластер с полноценными транзакциями. у майкрософт, postgres и mysql ничего сравнимого нет, ibm издох. от его pure cluster лет 10 нет новостей. угроза лишь со стороны bigdata/nosql, но и они бегут позади оракла, а не впереди. самое прогрессивное на том поле, cloudera kudu, даже UNDO/REDO логи называют UNDO/REDO. точно как у оракла. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 22:57 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
H5N1но именно это и превратило оракл в абсолютного лидера с долей rdbms 50%+ да вот хрен. вовсе не это. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 01:44 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
авторвытеснять их опять же логично и понятно на диск. вместе с блокировками я правльно понимаю, что чтобы кастеру понять что сейчас заблокированно ему надо сбросить все буфера со свех нод на диск? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2018, 16:04 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
ScareCrowавторвытеснять их опять же логично и понятно на диск. вместе с блокировками я правльно понимаю, что чтобы кастеру понять что сейчас заблокированно ему надо сбросить все буфера со свех нод на диск? а ему это не надо. на сколько я помню (пишу по памяти) если на ноде нет блока она ищет блок у соседних нод по интерконекту, если у тех в буферном кеше нет, то только тогда идет на диск за блоком. т.е. откуда взялся блок не важно, с соседней ноды или с диска или эта нода сама его и создала. блокировки же внутри блока, атрибут данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2018, 16:16 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
авторблока она ищет блок у соседних нод по интерконекту, если у тех в буферном кеше нет там еще интерконнект между нодами нужен? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2018, 16:19 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
Где "там" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2018, 17:39 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
ScareCrowавторблока она ищет блок у соседних нод по интерконекту, если у тех в буферном кеше нет там еще интерконнект между нодами нужен? да, рекомендуется отдельный и хотя бы гигабитный езернет ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2018, 15:19 |
|
Как происходит операция Index Seek на самом нижнем уровне?
|
|||
---|---|---|---|
#18+
H5N1ScareCrowпропущено... там еще интерконнект между нодами нужен? да, рекомендуется отдельный и хотя бы гигабитный езернет "файл-серверная субд-мичуринец с межнодной сетевой синхронизацией шар" нет ? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2018, 10:14 |
|
|
start [/forum/topic.php?all=1&fid=35&tid=1552222]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
144ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
114ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 318ms |
0 / 0 |