Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
13.01.2021, 13:22
|
|||
---|---|---|---|
|
|||
Update всех строк большой таблицы без блокировки всей таблицы |
|||
#18+
Здравствуйте! Имеется относительно большая таблица для которой необходимо изменить значение в определённой колонке: Код: plaintext
Вопрос - можно ли выполнить такой же Update блокируя только единичную строку в каждый момент - через курсор или как-то еще - я не специалист, не уверен? Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.01.2021, 13:44
|
|||
---|---|---|---|
Update всех строк большой таблицы без блокировки всей таблицы |
|||
#18+
Да, можно. Код: plsql 1. 2. 3. 4. 5.
В цикле - то же самое. Код: plsql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.01.2021, 13:46
|
|||
---|---|---|---|
Update всех строк большой таблицы без блокировки всей таблицы |
|||
#18+
Ну и если вы меняете значимые для других сессий поля, нужно не забывать про многопользовательский режим - запланировать update на нужное время, выставить блокировки и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.01.2021, 13:46
|
|||
---|---|---|---|
|
|||
Update всех строк большой таблицы без блокировки всей таблицы |
|||
#18+
IgorMpна время выполнения запроса блокируются *все* строки таблицы. Обычно они не блокируются. Как Вы этого добились? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.01.2021, 13:49
|
|||
---|---|---|---|
Update всех строк большой таблицы без блокировки всей таблицы |
|||
#18+
IgorMp Здравствуйте! Имеется относительно большая таблица для которой необходимо изменить значение в определённой колонке: Код: plaintext
Вопрос - можно ли выполнить такой же Update блокируя только единичную строку в каждый момент - через курсор или как-то еще - я не специалист, не уверен? Спасибо относительно большая таблица, ето сколько? ps менять в цикле напр по 100тысч строк ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.01.2021, 14:00
|
|||
---|---|---|---|
|
|||
Update всех строк большой таблицы без блокировки всей таблицы |
|||
#18+
Dimitry Sibiryakov IgorMpна время выполнения запроса блокируются *все* строки таблицы. Обычно они не блокируются. Как Вы этого добились? Я сам сделал такой вывод т.к. по логам сервер не ответил как раз в то время, когда выполнялся данный запрос. И я всегда считал, что при вызове типа Код: plaintext
а если WHERE не указано - то на все строки таблицы. Разве это не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.01.2021, 14:05
|
|||
---|---|---|---|
|
|||
Update всех строк большой таблицы без блокировки всей таблицы |
|||
#18+
IgorMpРазве это не так? Это не MS SQL сервер, читатели не блокируются писателями. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.01.2021, 14:08
|
|||
---|---|---|---|
Update всех строк большой таблицы без блокировки всей таблицы |
|||
#18+
Читатели не блокируются, возможно у вас просто все ресурсы сервера на этот update ушли ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.01.2021, 14:13
|
|||
---|---|---|---|
|
|||
Update всех строк большой таблицы без блокировки всей таблицы |
|||
#18+
env Читатели не блокируются, возможно у вас просто все ресурсы сервера на этот update ушли Я ни слова и не говорил о читателях. И меня все писатели. Сервер не ответил на модифицирующий запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.01.2021, 14:25
|
|||
---|---|---|---|
Update всех строк большой таблицы без блокировки всей таблицы |
|||
#18+
IgorMp, cursor + fetch bulk collect into limit + forall упд. А так и задумано что другие сессии будут менять те же строки в то же время? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.01.2021, 14:30
|
|||
---|---|---|---|
Update всех строк большой таблицы без блокировки всей таблицы |
|||
#18+
IgorMp Я ни слова и не говорил о читателях. И меня все писатели Так тогда можно и не обновлять, всё равно никто не прочитает. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.01.2021, 14:46
|
|||
---|---|---|---|
|
|||
Update всех строк большой таблицы без блокировки всей таблицы |
|||
#18+
dmdmdm Да, можно. Код: plsql 1. 2. 3. 4. 5.
В цикле - то же самое. Код: plsql 1. 2. 3. 4.
dmdmdm, Спасибо, вариант с курсором действительно не блокирует остальные строки - как раз то что нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.01.2021, 14:55
|
|||
---|---|---|---|
|
|||
Update всех строк большой таблицы без блокировки всей таблицы |
|||
#18+
env А так и задумано что другие сессии будут менять те же строки в то же время? Мир не идеален :) Кто-то просто пишет скрипт, запускающийся ночью по расписанию, в который включён сплошной UPDATE таблицы и длящийся более 30 сек. А другой человек должен решить проблему отваливающихся по таймауту запросов во время выполнения этого скрипта. И человека, который решает конкретную проблему никто не спросил, можно ли апдейтить продакшен базу наживую. "Задумано" тут просто никак не ложится :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=52&mobile=1&tid=1880530]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 152ms |
0 / 0 |