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