Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
26.07.2021, 11:17
|
|||
---|---|---|---|
|
|||
Согласование SELECT и UPDATE |
|||
#18+
Добрый день, Есть таблица, к которой обращаются два запроса: Первый запрос обновляет данные в таблице, используя DELETE, INSERT и UPDATE, оформлен процедурой, которую периодически запускает джоб. Второй запрос - только SELECT Нужно ли в коде прописывать какие-либо блокировки (если да, то какие?), чтобы выполнялись два условия: 1. Пока полностью не выполнится обновление, запрос на SELECT ожидает и не выполняется 2. Также и для обновляющего запроса - он не начинает выполняться, пока не завершится SELECT ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.07.2021, 12:00
|
|||
---|---|---|---|
Согласование SELECT и UPDATE |
|||
#18+
Ну, если очень надо: 1. Делаешь две процедуры: 1) "Первый запрос обновляет данные в таблице, используя DELETE, INSERT и UPDATE" 2) "Второй запрос - только SELECT" 2. Изучаешь sp_getapplock 3. Вызываешь sp_getapplock в начале каждой из процедур. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.07.2021, 16:30
|
|||
---|---|---|---|
Согласование SELECT и UPDATE |
|||
#18+
with (nolock) в SELECTe не вариант? Выборка происходит без блокировки таблицы, в которую происходит DELETE, INSERT и UPDATE твоим джобом ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.07.2021, 17:11
|
|||
---|---|---|---|
Согласование SELECT и UPDATE |
|||
#18+
Alex_Va, Почти наверняка, RCSI то, что вам нужно ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.07.2021, 17:13
|
|||
---|---|---|---|
Согласование SELECT и UPDATE |
|||
#18+
НиколайСНwith (nolock) в SELECTe не вариант?Совсем не вариант. ТС ХОЧЕТ блокировку. Я думаю, что проще всего обернуть первый запрос в транзакцию и позволить серверу решить вопрос с блокировками. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.07.2021, 17:27
|
|||
---|---|---|---|
|
|||
Согласование SELECT и UPDATE |
|||
#18+
SERG1257 НиколайСНwith (nolock) в SELECTe не вариант? Я думаю, что проще всего обернуть первый запрос в транзакцию и позволить серверу решить вопрос с блокировками. NOLOCK не подходит сейчас использую в процедуре обновления Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
иногда это вызывает взаимоблокировку ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.07.2021, 18:11
|
|||
---|---|---|---|
Согласование SELECT и UPDATE |
|||
#18+
Alex_Va, Как достичь желаемого, чтобы не мешать другим читателям/писателям написано тут - 22351110 Если такой задачи не стоит, то в процедуре Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
В выборке Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=46&tablet=1&tid=1684470]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 268ms |
total: | 379ms |
0 / 0 |