|
|
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
Добрый день, возникло недоумение от чего вставка в IOT происходит так быстро: Есть IOT таблица: Create table Abc ( id number, pad char(1000), constraint pk_abc primary key (id) ) organization index Вставляю 10 миллионов с разряженным ID for i in 1 .. 10000000 loop insert into Abc (id, pad ) values (i * 1000000, [1000 байт строка]); end loop; Далее, если выполнить вставку миллиона строк(такого же размера ~1кб) в центр, где нибудь между id 5000000000001..5000001000000 операция отрабатывает ровно за то же время, как если бы это была обычная heap таблица с первичным ключом по id. Как это можно объяснить? Ведь вроде, после того, как будет переполнен листовой блок индекса(в которые новые записи должны попасть), ораклу придётся подвинуть все последующий листовые блоки на нужное пространство, что очень трудоёмко, учитывая что там хранится не rowid, а строка в 1 КБ!!. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2018, 20:28 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
Yoabораклу придётся подвинуть все последующий листовые блоки на нужное пространство Видимо те, кто проектировал индексные структуры oracle, об этой необходимости не знали... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2018, 21:03 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
IOT rows are accessed via logical rowid and not a physical rowid like in heap-organized tables. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2018, 22:09 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
SY, Не пойму, как это объясняет то, что я описал в топике SYIOT rows are accessed via logical rowid and not a physical rowid like in heap-organized tables. SY. Мне всегда казалось, что здесь имеется ввиду доступ к строке IOT по логическому rowid,который доступен через вторичный индекс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2018, 22:57 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
YoabВедь вроде YoabМне всегда казалось Возможно, имеет смысл попробовать заменить суеверия знанием - к примеру, почитать что-нибудь из проф. литературы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 15:50 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousYoabВедь вроде YoabМне всегда казалось Возможно, имеет смысл попробовать заменить суеверия знанием - к примеру, почитать что-нибудь из проф. литературы? Что посоветуешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 16:31 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
YoabЧто посоветуешь? IMHO начать можно с классики https://www.ozon.ru/context/detail/id/2527036/ Кнут. Искусство программирования. Том 3. Сортировка и поиск т.к. фраза подвинуть все последующий листовые блоки на нужное пространство вызывает легкое недоумение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 17:16 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevYoabЧто посоветуешь? IMHO начать можно с классики https://www.ozon.ru/context/detail/id/2527036/ Кнут. Искусство программирования. Том 3. Сортировка и поиск Я прекрасно понимаю, как происходят операции вставки/модификации/удаления листов на бинарном дереве. Тут вопрос не алгоритмический, а технический. Вопрос заключался в том, как физически распределяются листовые узлы индекса по единицам.данных Oracle(экстенты,сегменты итд).? Они идут вплотную друг за другом? Или быть может содержат указатели, друг на друга, аля двухсвязный список, а на самом деле физически могут находится в совершенно разных местах. Вот в чём вопрос был, а вы тут книжками по алгоритмам раскидались.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 20:27 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
YoabВот в чём вопрос был, а вы тут книжками по алгоритмам раскидались.... Упорный однако... https://docs.oracle.com/cd/E11882_01/server.112/e40540/indexiot.htm#CNCPT1190 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 21:41 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousYoabВот в чём вопрос был, а вы тут книжками по алгоритмам раскидались.... https://docs.oracle.com/cd/E11882_01/server.112/e40540/indexiot.htm#CNCPT1190 If a row overflow area is specified... Ты не позорился бы... Давайте, ещё чуть чуть и мы вместе узнаем как же в Оракле организовано хранения индекс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 22:46 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
Yoabandrey_anonymousпропущено... https://docs.oracle.com/cd/E11882_01/server.112/e40540/indexiot.htm#CNCPT1190 If a row overflow area is specified... Ты не позорился бы... Юноша, Вы не пробовали ЧИТАТЬ документацию? Не одну строчку, а чуть шире. Хинт: Попробуйте почитать чуть выше от ссылки или просто посмотреть в оглавление... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 22:49 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousYoabпропущено... If a row overflow area is specified... Ты не позорился бы... Юноша, Вы не пробовали ЧИТАТЬ документацию? Не одну строчку, а чуть шире. Хинт: Попробуйте почитать чуть выше от ссылки или просто посмотреть в оглавление... Дилетант проклятый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 23:02 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
Yoabandrey_anonymousпропущено... Юноша, Вы не пробовали ЧИТАТЬ документацию? Дилетант проклятый. Я так и понял. Но это поправимо - читайте, изучайте и все получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 23:03 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousYoabпропущено... Дилетант проклятый. Я так и понял. Но это поправимо - читайте, изучайте и все получится. Я тебя дилетантом назвал не просто так - ты не понимаешь в чём заключается мой вопрос и поэтому кидаешь ссылку с концептуальным описанием, в которой нет нужной инфы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 23:07 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
Yoabты не понимаешь в чём заключается мой вопросты не понимаешь интуитивно очевидных вещей и поэтому не отлистал на главу взад, где описание индексов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2018, 00:01 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
Yoab, Да оставьте вы в покое этих дилетантов, вот у меня с пониманием вопроса проблема ... Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. Или эффект проявляется только при 10 лимонах вставок? Regards Maxim ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2018, 00:23 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
Maxim Demenko, Перечитал не по диагонали, дошло Regards Maxim ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2018, 00:33 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
-2-Yoabты не понимаешь в чём заключается мой вопросты не понимаешь интуитивно очевидных вещей и поэтому не отлистал на главу взад, где описание индексов. Вообще по ссылке для IOT тоже вполне вменяемо расписано, с картинками. Но чтобы понять - надо знать что есть блок, экстент, сегмент... а про это в другой части концептов, на которую ссылок ТС не дали :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2018, 00:33 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
Я тебя дилетантом назвал не просто такСутки бана - это ни о чём для таких самовлюблённых перцев. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2018, 09:23 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
Maxim DemenkoДа оставьте вы в покое этих дилетантов, вот у меня с пониманием вопроса проблема ... + Или эффект проявляется только при 10 лимонах вставок? Подтверждаю. На практике нарывался на подобное. Сделал табличку IOT (маленькую, не 10 миллионов) - получил жуткие тормоза Тормоза были жуткие, т.е. разница была не 2 раза, как у Вас намерялось, а визуально на порядки. Не парился, вместо IOT сделать обычную таблицу + индекс по всем колонкам - стало работать намного быстрее. Т.к. индекс по всем колонкам, SELECT'ы работали чисто по индексу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2018, 16:18 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevНе парился, вместоЗвучит как "у меня в подвале стук". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 07:45 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
В исходном сообщение, на которое отвечал, простейший тест и результаты замеров времени. У меня на 11 (точной цифры не помню), было примерно так же. Замечательно работали select'ы, но совершенно жуткое время insert'ов. С причинами не разбирался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 13:12 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
ElicLeonid KudryavtsevНе парился, вместоЗвучит как "у меня в подвале стук". попытался воспроизвести на текущем сервере 11.2.0.3 64 бит Linux эффект не воспроизвелся но когда на такое нарвался, у нас еще и админы были "алтернативно одаренные", т.ч. удивился, посчитал багой и разбираться не стал т.ч. можно считать, что ситуация в подвале нормализовалась ))) стуков нет ))) но зуб даю, что было ))) Дорогие учёные. У меня который год в подполе происходит подземный стук. Объясните, пожалуйста, как он происходит ( С ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 13:45 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
Поскольку в индексный блок iot помещается меньше записей, blevel растет быстрее, и приходится больше читать при поиске нового места. Но основное, чаще приходится добавлять листовой блок, что влечет резкое увеличение количества изменяемых блоков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 14:25 |
|
||
|
Вставка в индексно-организованную таблицу (IOT)
|
|||
|---|---|---|---|
|
#18+
-2-Поскольку в индексный блок iot помещается меньше записей, blevel растет быстрее, и приходится больше читать при поиске нового места.Это лучше озвучить в цифрах Например, на индексе из одного поля на миллиард записей blevel вряд ли будет больше 4 Для IOT с фиксированной частью около 100 байт (остальное в OVERFLOW) для того же миллиарда строк прогнозирую blevel не больше 6 -2-Но основное, чаще приходится добавлять листовой блок, что влечет резкое увеличение количества изменяемых блоков.Ну да, прямо начинаем перестраивать/балансировать дерево, ога ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 14:37 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39728922&tid=1883218]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
16ms |
get forum data: |
3ms |
get page messages: |
83ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 524ms |

| 0 / 0 |
