|
|
|
почему селект лочит таблицу в lmode 1?
|
|||
|---|---|---|---|
|
#18+
Всем привет. Oracle 11.2.0.4. После партиционирования таблички с колонкой nested table. Один запрос начал открывать транзакцию и лочить таблицу в LMODE=1. Воспроизвести промлему можно так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2016, 19:13 |
|
||
|
почему селект лочит таблицу в lmode 1?
|
|||
|---|---|---|---|
|
#18+
Запрос который создает блокировку : Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. блокировку можно увидеть здесь: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. Может кто-то объяснить, что это за блокировка? Почему стартует транзакция? (после запуска в plsql-developere зажигаются кнопочка, которая говорит что есть не закомиченные данные). И как можно избежать этой блокировки? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2016, 19:17 |
|
||
|
почему селект лочит таблицу в lmode 1?
|
|||
|---|---|---|---|
|
#18+
niv76 Почему стартует транзакция? Скорее всего из за открытия рефкурсора. lmode1 = NULL Код: plsql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2016, 19:24 |
|
||
|
почему селект лочит таблицу в lmode 1?
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. 4. это одна таблица/бд или разные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2016, 19:27 |
|
||
|
почему селект лочит таблицу в lmode 1?
|
|||
|---|---|---|---|
|
#18+
одна таблица. схему забыл убрать.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2016, 19:38 |
|
||
|
почему селект лочит таблицу в lmode 1?
|
|||
|---|---|---|---|
|
#18+
ora601, спасибо. Запрос можно выполнить и без рефкурсора, результат такой же. Замечу, что если создать таблицу без партиционирования, то блокировка не создается. Сам запрос должен содержать внешнее соединение + скалярный подзапрос к любой таблице, не обязательно этой. Если хоть одно из этих условий убрать, то блокировки не происходит..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2016, 19:44 |
|
||
|
почему селект лочит таблицу в lmode 1?
|
|||
|---|---|---|---|
|
#18+
niv76ora601, спасибо. Запрос можно выполнить и без рефкурсора, результат такой же. Замечу, что если создать таблицу без партиционирования, то блокировка не создается. Сам запрос должен содержать внешнее соединение + скалярный подзапрос к любой таблице, не обязательно этой. Если хоть одно из этих условий убрать, то блокировки не происходит..... Тогда остаеться параллель. Как с этим? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2016, 19:46 |
|
||
|
почему селект лочит таблицу в lmode 1?
|
|||
|---|---|---|---|
|
#18+
ora601, Паралеля нет. Поигрался еще немного. Похоже что это вообще не блокировка: В одной сессии открыл курсор, в другой проверил, что блокировка в v$lock таблице появилась, и попробовал дропнуть эту таблицу. Дроп прошел!!! ну и на рабочей базе, ожиданий реально не было, хотя таблица абдейтиться регулярно, а локи эти висят довольно долго, до 300 секунд, пока сессия не закроется... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2016, 20:01 |
|
||
|
почему селект лочит таблицу в lmode 1?
|
|||
|---|---|---|---|
|
#18+
niv76ora601, Паралеля нет. Поигрался еще немного. Похоже что это вообще не блокировка: В одной сессии открыл курсор, в другой проверил, что блокировка в v$lock таблице появилась, и попробовал дропнуть эту таблицу. Дроп прошел!!! ну и на рабочей базе, ожиданий реально не было, хотя таблица абдейтиться регулярно, а локи эти висят довольно долго, до 300 секунд, пока сессия не закроется... Ну это же не X mode, что ты хотел) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2016, 20:02 |
|
||
|
почему селект лочит таблицу в lmode 1?
|
|||
|---|---|---|---|
|
#18+
Вобщем не понятна природа этой блокировки, и может ли она создать какие-то проблемы на много пользовательской базе. Пока таких проблем обнаружено не было. Но определенная тревога от непонимания присутствует.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2016, 20:10 |
|
||
|
почему селект лочит таблицу в lmode 1?
|
|||
|---|---|---|---|
|
#18+
niv76, я бы вам посоветовал избавиться от вложенной таблицы, так вы автоматически избавитесь от возникновения транзакции, а так же от головной боли в будущем в виде сопровождения данной таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2016, 10:37 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39343184&tid=1887068]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
175ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 467ms |

| 0 / 0 |
