|
|
|
Кто объяснит?
|
|||
|---|---|---|---|
|
#18+
SELECT A1 FROM A; 2 4 5 1 СЕССИЯ SELECT * FROM A WHERE A1=2 FOR UPDATE; 1 ЗАПИСЬ 2 СЕССИЯ SELECT * FROM A WHERE A1<>2 FOR UPDATE NOWAIT SKIP LOCKED; 0 ЗАПИСЕЙ 1. Почему? 2. Как сделать, чтоб второй запрос давал 2 записи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2003, 17:41 |
|
||
|
Кто объяснит?
|
|||
|---|---|---|---|
|
#18+
Потомучто в первой сессии запрос заблокировал строки:FOR UPDATE. Естественно, что в этом случае никто не сможет сделать тоже самое, например как в твоей второй сессии: Код: plaintext 1. Что-бы первая сессия освободила ресурсы, надо или закрыть сессию или видимо сделать commit. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2003, 17:56 |
|
||
|
Кто объяснит?
|
|||
|---|---|---|---|
|
#18+
Хотя пардон. Не обратил внимание на разные условия. А что такое SKIP LOCKED? Это в какой версии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2003, 18:02 |
|
||
|
Кто объяснит?
|
|||
|---|---|---|---|
|
#18+
это все понятно... вопрос в другом первый for update по идее должен залочить одну запись.... второй две записи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2003, 18:20 |
|
||
|
Кто объяснит?
|
|||
|---|---|---|---|
|
#18+
Вот нашел: http://www-kryo.desy.de/documents/Oracle/ora815nf_short.html#Skip%20locked%20rows%20with%20SKIP%20LOCKED Интересно, что в родной документации не могу найти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2003, 18:30 |
|
||
|
Кто объяснит?
|
|||
|---|---|---|---|
|
#18+
там же ясно сказано.... This means, that only unlocked rows will be displayed for all other sessions. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2003, 18:50 |
|
||
|
Кто объяснит?
|
|||
|---|---|---|---|
|
#18+
Странно, у меня все работает (Oracle 8.1.7.4) Первая сессия: Код: plaintext 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. Другая сессия: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2003, 19:09 |
|
||
|
Кто объяснит?
|
|||
|---|---|---|---|
|
#18+
to Denis Popov: Вот-вот. В SQL Ref я не смог найти описания этого. У меня "Oraclei SQL Reference Release 3 (8.1.7) September 2000 Part No. A85397-01" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2003, 09:03 |
|
||
|
Кто объяснит?
|
|||
|---|---|---|---|
|
#18+
Я тоже так и не нашел, но вон чего увидел: http://asktom.oracle.com/pls/ask/f?p=4950:8:1930241::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:1560590629334,%7Bskip%7D%20and%20%7Blocked%7D И пугающие фразы: It is not only "not" ANSI, it is o not documented o not supported o not a good idea to use it. Интересно, со временем эту фичу задокументируют, или она только "для служебного пользования"? 2Лобастик - очень смахивает на баг, какая версия оракла? Вряд ли ее можно пропачить, разве что случайно, или перейти на какую-нибудь другую версию, у нас на 9.2.0.1.0 EE, Linus SLES-7 все работает именно так, как незадокументированно:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2003, 10:31 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32093641&tid=1992109]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
174ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 485ms |

| 0 / 0 |
