powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / И опять блокировки
7 сообщений из 7, страница 1 из 1
И опять блокировки
    #36814061
_devel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день всем!

ASE 15

Проблема такая:
Есть таблица(0.5 млн записей). Есть процедура, которая по расписанию апдэйтит в ней 90% записей. Работает процедура примерно 1 мин. Но с этой таблицей еще работает куча юзеров(insert, delete, update). Когда процедура запускается, таблица эксклюзивно блокируется и все юзеры могут идти курить примерно на одну минуту. Это и вызывает проблемы. Не проходит даже insert, хотя таблица с построчной блокировкой. Так как апдэйтиться почти вся таблица блокировка эскалирует до табличной.

Может как-то можно порешать эти проблемы? Временем апдэйтовой процедуры можно пренебречь, ну если сейчас она работает 1 мин, то не будет проблем, если она будет работать 10 мин.
...
Рейтинг: 0 / 0
И опять блокировки
    #36814313
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_devel wrote:

> Есть таблица(0.5 млн записей). Есть процедура, которая по расписанию
> апдэйтит в ней 90% записей. Работает процедура примерно 1 мин. Но с этой
> таблицей еще работает куча юзеров(insert, delete, update). Когда
> процедура запускается, таблица эксклюзивно блокируется и все юзеры могут
> идти курить примерно на одну минуту.

Это эскалации блокировок.

Это и вызывает проблемы. Не
> проходит даже insert, хотя таблица с построчной блокировкой. Так как
> апдэйтиться почти вся таблица блокировка эскалирует до табличной.

А это просто решается. Берёте таблицу, делаете её на DPL или DRL,
и укручиваете эскалацию блокировок почти в 0. Т.е. чтобы эскалация
никогда не происходила. Только при этом надо под локи выделить
больше памяти, (number of locks), потому что жрать их будет
сервак немилосердно (вместо одного лока на всю таблицу будут по
локу на страницу или по локу на запись).

При этом insert, delete, update будут пролетать на этой таблице
на ура, никому ваш фоновый UPDATE мешать не будет. Но это на
DRL-таблице.

DPL таблица будет немного компромиссным вариантом, поскольку
тут конфликты возможны, но зато локов меньше (в число строк
на странице раз).

Будет хорошо, если это возможно, разбить один большой
UPDATE на маленькие пачки по N строк где N что-то типа
1000 - 5000.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
И опять блокировки
    #36814546
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_devel

Я бы эскалацию бы не трогал! Много блокировок = много памяти.

А вот разбить на несколько updae-ов, как советует MasterZiv, это наилучший выход.
Также обезопасите себя от переполнения лога.
Это можно сделать курсором, хотя я не уверен! Курсор может накладывать блокировку не на одну строку, которая изменяется, а на всю выборку, по которой бежит курсор. Это надо проверять!!!
Но не что не мешает сделать это циклом(while), @@rowcount, и select top(в ASE 15 top есть).
...
Рейтинг: 0 / 0
И опять блокировки
    #36814605
_devel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv, cherrex_Den

А можно пример такого Update?
...
Рейтинг: 0 / 0
И опять блокировки
    #36814704
0rc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cherrex_Den select top(в ASE 15 top есть).
с 12.5.3 есть
...
Рейтинг: 0 / 0
И опять блокировки
    #36841970
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_devel wrote:

> А можно пример такого Update?

set rowcount 1000
update theTable
set ...
where <условие>
set rowcount 0
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
И опять блокировки
    #36844458
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_develДобрый день всем!

ASE 15

Проблема такая:
Есть таблица(0.5 млн записей). Есть процедура, которая по расписанию апдэйтит в ней 90% записей.

Может быть посмотреть в сторону изменения структуры базы? Что именно обновляется в таблице?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / И опять блокировки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]