|
|
|
Snapshot to old
|
|||
|---|---|---|---|
|
#18+
У меня возник вопрос связанный с этой ошибкой, одна из причин это изменение начитанной в курсоре таблицы и частая фиксация изменений. Не совсем понимаю почему? если не сложно, то своими словами и хотелось бы еще ссылок плз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2017, 02:59 |
|
||
|
Snapshot to old
|
|||
|---|---|---|---|
|
#18+
cobalt_frog...хотелось бы еще ссылок плз. Томас Кайт "Oracle для профессионалов Архитектура, методики программирования и особенности версий 9i, 10g и 11g 2-е издание". - причина получения ошибки подробно описана. Про 3-е издание сказать не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2017, 03:26 |
|
||
|
Snapshot to old
|
|||
|---|---|---|---|
|
#18+
cobalt_frog, Сессия А выдала SELECT * FROM TBL. Затем сессия Б изменила (с фиксацией) данные в TBL еще не прочитанные сессией A. Откуда Oracle достанет данные чтобы гарантировать statement level read consistency? Правильно, из UNDO. А если этот UNDO на этот момент уже переиспользован? Правильно - snapshot too old. Так-что частая фиксация может увеличить риск. Но все это в общих чертах (есть undo retention, и.т.п.). SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2017, 16:32 |
|
||
|
Snapshot to old
|
|||
|---|---|---|---|
|
#18+
SYcobalt_frog, Сессия А выдала SELECT * FROM TBL. Затем сессия Б изменила (с фиксацией) данные в TBL еще не прочитанные сессией A. Откуда Oracle достанет данные чтобы гарантировать statement level read consistency? Правильно, из UNDO. А если этот UNDO на этот момент уже переиспользован? Правильно - snapshot too old. Так-что частая фиксация может увеличить риск. Но все это в общих чертах (есть undo retention, и.т.п.). SY. Тут имеется ввиду частая фиксация в сессии А или в сессии Б? Я спрашивал именно про случай когда происходит частая фиксации в сессии А, например выборка в курсор селекта и обновление данных самой этой таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2017, 22:44 |
|
||
|
Snapshot to old
|
|||
|---|---|---|---|
|
#18+
cobalt_frogSYcobalt_frog, Сессия А выдала SELECT * FROM TBL. Затем сессия Б изменила (с фиксацией) данные в TBL еще не прочитанные сессией A. Откуда Oracle достанет данные чтобы гарантировать statement level read consistency? Правильно, из UNDO. А если этот UNDO на этот момент уже переиспользован? Правильно - snapshot too old. Так-что частая фиксация может увеличить риск. Но все это в общих чертах (есть undo retention, и.т.п.). SY. Тут имеется ввиду частая фиксация в сессии А или в сессии Б? Я спрашивал именно про случай когда происходит частая фиксации в сессии А, например выборка в курсор селекта и обновление данных самой этой таблицы. імхо не так важно кто фиксирует, важно что кто-то затер данные ундо (пойдет на второй круг) обычно сессии Б, но может и А ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2017, 09:11 |
|
||
|
Snapshot to old
|
|||
|---|---|---|---|
|
#18+
Stax, Как ни странно (хотя почему странно - типичная ошибка оптимизаторов долгоиграющих транзакций) чаще всего самострел. Сессия выдает select, читает данные в цикле, изменяет их и фиксирует через каждые N строк. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2017, 15:11 |
|
||
|
Snapshot to old
|
|||
|---|---|---|---|
|
#18+
не читайте в курсоре, а скидывайте в коллекцию и будет вам счастие ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2017, 15:16 |
|
||
|
Snapshot to old
|
|||
|---|---|---|---|
|
#18+
SYStax, Как ни странно (хотя почему странно - типичная ошибка оптимизаторов долгоиграющих транзакций) чаще всего самострел. Сессия выдает select, читает данные в цикле, изменяет их и фиксирует через каждые N строк. SY. по разному, от системы зависит, у нас ОЛТП, было чаще Б (чистый долгоиграющий селект) если сам (А) виноват, бороться проще меня больше возмущало, что даже если запись из выборки никто не трогал, меняли другие строки блока и затерли инфу, то всеравно 1555 но такая архитектура ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2017, 15:20 |
|
||
|
Snapshot to old
|
|||
|---|---|---|---|
|
#18+
Staxчто даже если запись из выборки никто не трогал, меняли другие строки блока и затерли инфу, то всеравно 1555 Для OLTP уменьшить размер блока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2017, 15:22 |
|
||
|
Snapshot to old
|
|||
|---|---|---|---|
|
#18+
DВАне читайте в курсоре, а скидывайте в коллекцию и будет вам счастие Дорогая, читать в коллекцию пачками или всю таблицу? Если первое, то от 1555 это не страхует, а если второе - то гнать, например, многосотмиллионную таблицу в коллекцию и работать с ней... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2017, 15:27 |
|
||
|
Snapshot to old
|
|||
|---|---|---|---|
|
#18+
Бракованный финский угорьDВАне читайте в курсоре, а скидывайте в коллекцию и будет вам счастие Дорогая, читать в коллекцию пачками или всю таблицу? Если первое, то от 1555 это не страхует, а если второе - то гнать, например, многосотмиллионную таблицу в коллекцию и работать с ней... редкостный гений станет обрабатывать построчно многосотмиллионную таблицу, милый ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2017, 15:31 |
|
||
|
Snapshot to old
|
|||
|---|---|---|---|
|
#18+
DВАБракованный финский угорьпропущено... Дорогая, читать в коллекцию пачками или всю таблицу? Если первое, то от 1555 это не страхует, а если второе - то гнать, например, многосотмиллионную таблицу в коллекцию и работать с ней... редкостный гений станет обрабатывать построчно многосотмиллионную таблицу, милый ) И я в таком же случае обновляю свои таблички forall-пачками при однократном открытии курсора на чтение. Но осознаю, что вероятность получения 1555 остается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2017, 15:39 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39508462&tid=1885391]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
173ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 523ms |

| 0 / 0 |
