Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ASE 12.5: аналог FOR UPDATE (Oracle) или UPDLOCK (MSSQL)
|
|||
|---|---|---|---|
|
#18+
Как можно добиться такого же эффекта на Sybase ASE? Т.е. указать серверу о том что при выполнении данного SELECT'a нужно накладывать U pdate блокировку, а не S hared? Я пока вижу только одно решение - lock table <table_name> in exclusive mode но мне оно не сильно нравиться :) Вроде еще можно открыть курсор FOR UPDATE? PS Все это нужно чтобы работало на Adaptive Server Enterprise/12.5.4/EBF 13381 ЗЫЗЫ заранее большое спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 11:16 |
|
||
|
ASE 12.5: аналог FOR UPDATE (Oracle) или UPDLOCK (MSSQL)
|
|||
|---|---|---|---|
|
#18+
funikovyuriКак можно добиться такого же эффекта на Sybase ASE? Т.е. указать серверу о том что при выполнении данного SELECT'a нужно накладывать U pdate блокировку, а не S hared? Я пока вижу только одно решение - lock table <table_name> in exclusive mode но мне оно не сильно нравиться :) Вроде еще можно открыть курсор FOR UPDATE? PS Все это нужно чтобы работало на Adaptive Server Enterprise/12.5.4/EBF 13381 ЗЫЗЫ заранее большое спасибо! LOCKINGControlling isolation levels You can set the transaction isolation level used by select commands: For all queries in the session, with the set transaction isolation level command For an individual query, with the at isolation clause For specific tables in a query, with the holdlock, noholdlock, and shared keywords ЛИНК ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 12:36 |
|
||
|
ASE 12.5: аналог FOR UPDATE (Oracle) или UPDLOCK (MSSQL)
|
|||
|---|---|---|---|
|
#18+
Спасибо, конечно... только это не по моей проблеме... ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 12:44 |
|
||
|
ASE 12.5: аналог FOR UPDATE (Oracle) или UPDLOCK (MSSQL)
|
|||
|---|---|---|---|
|
#18+
funikovyuriСпасибо, конечно... только это не по моей проблеме... ;) почему? разве repatable read не подойдет для Ваших целей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:00 |
|
||
|
ASE 12.5: аналог FOR UPDATE (Oracle) или UPDLOCK (MSSQL)
|
|||
|---|---|---|---|
|
#18+
komrad funikovyuriСпасибо, конечно... только это не по моей проблеме... ;) почему? разве repatable read не подойдет для Ваших целей? Проблема в том что, для того чтобы было repatable read - как раз ASE и накладывает shared блокировку. НО у komrad проблема в ином, чтобы при select накладывалась именно exclusive, а не shared блокировка. Т.е. когда несколько spid-ов работают с однимим и теми же объектами, и с начала делается select-ы, а потом надо изменить полученные строки, то в результате могут появляться deadlock-и Сам сталкивался с подобной проблемой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:15 |
|
||
|
ASE 12.5: аналог FOR UPDATE (Oracle) или UPDLOCK (MSSQL)
|
|||
|---|---|---|---|
|
#18+
Есть несколько feature request для реализации подобной функциональности: CR# 192624 - "select ... for update" CR# 364990 - Feature request for method to have SELECT get EXCLUSIVE lock Но, к сожалению, нет пока планов, по их реализации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:26 |
|
||
|
ASE 12.5: аналог FOR UPDATE (Oracle) или UPDLOCK (MSSQL)
|
|||
|---|---|---|---|
|
#18+
moris Ясно, спасибо BTW в db/2 это в первой версии уже было :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:44 |
|
||
|
ASE 12.5: аналог FOR UPDATE (Oracle) или UPDLOCK (MSSQL)
|
|||
|---|---|---|---|
|
#18+
funikovyuri moris Ясно, спасибо BTW в db/2 это в первой версии уже было :) Так и инженеры Sybase ASE про это давно знают. Feature request CR# 192624 - открыт еще в 1999 г. Но .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:59 |
|
||
|
ASE 12.5: аналог FOR UPDATE (Oracle) или UPDLOCK (MSSQL)
|
|||
|---|---|---|---|
|
#18+
moris Проблема в том что, для того чтобы было repatable read - как раз ASE и накладывает shared блокировку. НО у komrad проблема в ином, чтобы при select накладывалась именно exclusive, а не shared блокировка. Shared & Exclusive не совместимы все равно, так что наличие SHared не даст другим транзакциям изменить эти данные. Не все ли равно как будет называться тот lock, который сделает то, что вам нужно ? А так есть еще и такое: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Да, для дедлоков конечно это может быть нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 20:35 |
|
||
|
ASE 12.5: аналог FOR UPDATE (Oracle) или UPDLOCK (MSSQL)
|
|||
|---|---|---|---|
|
#18+
MasterZiv Да, для дедлоков конечно это может быть нужно. Да вариант с мнимым update можно рассматривать как workaround, но только подходит от далеко не для всех случаев Вот например в этом случае мнимый update не поможет Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2006, 11:00 |
|
||
|
ASE 12.5: аналог FOR UPDATE (Oracle) или UPDLOCK (MSSQL)
|
|||
|---|---|---|---|
|
#18+
Речь шла о логике, для которой достаточно Repeatable Read, а здесь надо уже SERIALIZABLE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2006, 15:59 |
|
||
|
ASE 12.5: аналог FOR UPDATE (Oracle) или UPDLOCK (MSSQL)
|
|||
|---|---|---|---|
|
#18+
Оо... Даже Юра попал в это счастье под названием ASE. Это наверное издержки программирования на Java. Можно было и догадаться, что другого способа кроме как указанного MasterZiv, здесь нет. И это несмотря на присутствие проблемы конвертации блокировки из Shared в Exclusive. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2006, 19:22 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=34114865&tid=2012419]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 256ms |
| total: | 447ms |

| 0 / 0 |
