|
|
|
ASA 11.0.1 - Получить только незаблокированные данные - как?
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток All! Хитрую задачку подкинули, в лоб решить ее не получилось. Дано - большая таблица с данными (по большому счету это список товаров на складе, идентификатор+дата поступл+изначально+остаток, косяк структуры вижу, но сейчас переделать что-либо в структуре нет возможности ). Клиентское приложение запрашивает список и начиная с первого элемента меняет часть данных по "Товар1" (остаток). Время транзакции около 40-60 секунд. Другое приложение то же запрашивает список и хочет менять данные по "Товар1", но нарывается на блокировку (что вполне логично). Можно ли как-нибудь в select отсечь заблокированные записи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2010, 12:45 |
|
||
|
ASA 11.0.1 - Получить только незаблокированные данные - как?
|
|||
|---|---|---|---|
|
#18+
v_smirnov, FROM table-expression, … WITH table-hint The WITH table-hint clause allows you to specify the behavior to be used only for this table, and only for this statement. table-hint: HOLDLOCK | NOLOCK | READCOMMITTED | READPAST | READUNCOMMITTED | REPEATABLEREAD | SERIALIZABLE | UPDLOCK | XLOCK | FASTFIRSTROW READPAST Instructs the database server to ignore, instead of block on, rows that have write locks. Used with isolation level 1 (only). Results may vary depending on the optimization strategy used by the optimizer, particularly if the hint is specified on only a subset of the tables in the query. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2010, 12:52 |
|
||
|
ASA 11.0.1 - Получить только незаблокированные данные - как?
|
|||
|---|---|---|---|
|
#18+
Спасибо добрый человек! Что-то я стал невнимательным ;( пора в отпуск ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2010, 13:23 |
|
||
|
ASA 11.0.1 - Получить только незаблокированные данные - как?
|
|||
|---|---|---|---|
|
#18+
Если другое приложение хочет менять данные, то с READPAST аккуратнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2010, 13:25 |
|
||
|
ASA 11.0.1 - Получить только незаблокированные данные - как?
|
|||
|---|---|---|---|
|
#18+
Я в смысле, что в данном случае по тому, что возвратит select c READPAST вряд ли можно будет правильно оценить и тем более менять данные по остаткам товаров на складе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2010, 13:37 |
|
||
|
ASA 11.0.1 - Получить только незаблокированные данные - как?
|
|||
|---|---|---|---|
|
#18+
v_smirnov wrote: > Можно ли как-нибудь в select отсечь заблокированные записи? В 11-ом кажется таких возможностей ещё не было. Кстати, где вы его откопали ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2010, 13:50 |
|
||
|
ASA 11.0.1 - Получить только незаблокированные данные - как?
|
|||
|---|---|---|---|
|
#18+
antand wrote: > Если другое приложение хочет менять данные, то с READPAST аккуратнее READPAST-а не было точно в 11-ом. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2010, 13:51 |
|
||
|
ASA 11.0.1 - Получить только незаблокированные данные - как?
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Читаю доку по 11 From..... table-hint : READPAST | UPDLOCK | XLOCK | FASTFIRSTROW | HOLDLOCK | NOLOCK | READCOMMITTED | READUNCOMMITTED | REPEATABLEREAD | SERIALIZABLE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2010, 13:55 |
|
||
|
ASA 11.0.1 - Получить только незаблокированные данные - как?
|
|||
|---|---|---|---|
|
#18+
MasterZiv READPAST-а не было точно в 11-ом. Сижу перечитываю доки ... эта штучка READPAST появилась аж не в 10-ке ... antandЯ в смысле, что в данном случае по тому, что возвратит select c READPAST вряд ли можно будет правильно оценить и тем более менять данные по остаткам товаров на складе Тут задача не оценить общий остаток - а из кучи свободного товара (1000 строк) списать (уменьшить остаток) для 5-10 строк. Да - я понимаю риски с этим связанные - но пока альтернативы этому решению не вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2010, 14:14 |
|
||
|
ASA 11.0.1 - Получить только незаблокированные данные - как?
|
|||
|---|---|---|---|
|
#18+
v_smirnov, Риск большой, нарваться на лок или дедлок, а главное кривого учета. Альтернативное решение есть(с применением UPDLOCK или логической блокировки товара), но придется чтобы любой из клиентов работали только через это решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2010, 14:35 |
|
||
|
ASA 11.0.1 - Получить только незаблокированные данные - как?
|
|||
|---|---|---|---|
|
#18+
MasterZiv v_smirnov wrote: > Можно ли как-нибудь в select отсечь заблокированные записи? В 11-ом кажется таких возможностей ещё не было. Кстати, где вы его откопали ? У TC не глупый ASE, а умная SA :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2010, 18:11 |
|
||
|
ASA 11.0.1 - Получить только незаблокированные данные - как?
|
|||
|---|---|---|---|
|
#18+
White Owl пишет: > В 11-ом кажется таких возможностей ещё не было. > Кстати, где вы его откопали ? > > У TC не глупый ASE, а умная SA :) Ой, что ж это я, совсем не читаю нифига ... Простите. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2010, 22:45 |
|
||
|
ASA 11.0.1 - Получить только незаблокированные данные - как?
|
|||
|---|---|---|---|
|
#18+
v_smirnovТут задача не оценить общий остаток - а из кучи свободного товара (1000 строк) списать (уменьшить остаток) для 5-10 строк. Вам никто не мешает выставить опцию blocking_timeout например в 1 секунду, тогда будет сгенерирована ошибка, если делать UPDATE на заблокированную другой сессий запись, где ошибку можно перехватить и например проигнорировать. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2010, 11:33 |
|
||
|
ASA 11.0.1 - Получить только незаблокированные данные - как?
|
|||
|---|---|---|---|
|
#18+
MasterZiv White Owl пишет: > В 11-ом кажется таких возможностей ещё не было. > Кстати, где вы его откопали ? > > У TC не глупый ASE, а умная SA :) Ой, что ж это я, совсем не читаю нифига ... Простите. Ну с выходом ASA 12 еще больше путаницы станет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2010, 11:34 |
|
||
|
|

start [/forum/search_topic.php?author=%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD+%D0%9B%D0%BE%D0%B3%D0%B0%D1%87%D0%B5%D0%B2&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 439ms |
| total: | 604ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...