|
create index online
|
|||
---|---|---|---|
#18+
Всем привет. Не могу найти и прояснить некоторые моменты создания индекса онлайн. Индекс создается путем полного сканирования таблицы. Как сессия получает данные dml других сессий, в это время меняющие столбцы, задействованные в индексе, через redo? После создания структуры индекса, сессия ddl ожидает окончания текущих транзакций на таблице. При этом новые транзакции не блокируются. Каков механизм этого? Данный индекс становится виден новым сессиям и они могут править его сами? Или данные изменений сливаются в какой-то буфер и сессия dml после получения управления донакатывает их сама, после чего актуализирует индекс в словаре? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 14:25 |
|
create index online
|
|||
---|---|---|---|
#18+
Создается mview log, далее стандартно, как redefinition. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 14:51 |
|
create index online
|
|||
---|---|---|---|
#18+
andrey_anonymous, Так в redefinition при finish_redit_table все dml блокируются. А при инициализации индекса новые dml продолжают идти. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 15:39 |
|
create index online
|
|||
---|---|---|---|
#18+
finish - это последний этап, достаточно короткий. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 15:57 |
|
create index online
|
|||
---|---|---|---|
#18+
andrey_anonymous finish - это последний этап, достаточно короткий. Инициализация индекса это тоже последний и очень короткий этап. Вопрос в том, почему при нем ожидается окончания транзакций на таблице на момент начала данного шага и не блокируются последующие. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 16:05 |
|
create index online
|
|||
---|---|---|---|
#18+
Swsov не блокируются последующие. Откуда взяли? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 16:12 |
|
create index online
|
|||
---|---|---|---|
#18+
andrey_anonymous Swsov не блокируются последующие. Откуда взяли? Да ладно ) Мне действительно кейс сделать? Но вообще-то этот момент еще с 11 версии идет. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 16:22 |
|
create index online
|
|||
---|---|---|---|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
И сам процесс в 3 сессиях Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 16:39 |
|
create index online
|
|||
---|---|---|---|
#18+
Swsov Код: plsql 1.
Ну и где здесь финализация индекса? Скажу по секрету: Вы можете до морковкина заговения по очереди проводить update-commit по сессиям 1 и 3, пока обе не будут зафиксированы - индекс финализирован не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 17:45 |
|
create index online
|
|||
---|---|---|---|
#18+
andrey_anonymous Ну и где здесь финализация индекса? Скажу по секрету: Вы можете до морковкина заговения по очереди проводить update-commit по сессиям 1 и 3, пока обе не будут зафиксированы - индекс финализирован не будет. Ну как бы нет, еще одна транзакция и ... Код: 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.
Вопрос все тот же, что за механизм позволяет активировать индекс с активными транзакциями на таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 20:27 |
|
create index online
|
|||
---|---|---|---|
#18+
Коротко, по памяти, без вдавания в детали. Для примера возьмем транзакции, меняющие данные только в исходной таблице. Для индекса с опцией online, который хочет финализироваться, будет 3 набора транзакций: - 1 набор : транзакции, существующие на момент финализации - 2 набор : транзакции, стартующие между началом финализации и моментом окончания всех транзакций из 1 набора - 3 набор : транзакции, стартующие после окончания всех транзакций из 1 набора Сессия, создающая индекс и блокированная на стадии его актуализации будет ждать окончания всех транзакция 1 и 2 набора. Поэтому даже постоянно обновляемая таблица позволит создать индекс online. ЗЫ. Не скажу насчет 11G, так как в то время уже гоняли на 12 версии. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 23:18 |
|
|
start [/forum/topic.php?fid=52&fpage=45&tid=1881236]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
79ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 179ms |
0 / 0 |