Есть OeBS форма. При сохранении данных одним пользователем другие тормозят. После анализа трейса выяснилось, что таблица лочиться запросом FOR UPDATE.
SELECT ...
FROM ...
FOR UPDATE ... NOWAIT;
Дело в том, что эта конструкция находиться в стандартном функционале и изменить или удалить ее нельзя. Начальство дало задание убрать тормоза... Как можно обойти эту проблему? Может быть понижать уровень изолированности транзакции и потом поднимать обратно? Но мне надо для разных сеансов менять уровень изолированности в таком случае... Мыслей нет...
Здравствуйте, Веселый кролик, Вы писали:
ВК>Есть OeBS форма. При сохранении данных одним пользователем другие тормозят. После анализа трейса выяснилось, что таблица лочиться запросом FOR UPDATE.
ВК>
ВК>Дело в том, что эта конструкция находиться в стандартном функционале и изменить или удалить ее нельзя. Начальство дало задание убрать тормоза... Как можно обойти эту проблему? Может быть понижать уровень изолированности транзакции и потом поднимать обратно? Но мне надо для разных сеансов менять уровень изолированности в таком случае... Мыслей нет...
Что-то я не понял, как связано торможение и select for update. Тем более, что у тебя стоит nowait, т.е. если сессия не может получить блокировку, то запрос сразу отваливается с ошибкой, а не висит в ожидании. Так же, если ты начнешь менять уровни изоляции, убирать for update, то ты имеешь шанс огрести таких проблем с тертыми-перетертыми данными, что тормоза потом будут казаться детскими шалостями В общем, я бы изучал вопрос более внимательно.
Здравствуйте, Веселый кролик, Вы писали:
ВК>Есть OeBS форма. При сохранении данных одним пользователем другие тормозят. После анализа трейса выяснилось, что таблица лочиться запросом FOR UPDATE.
Знаешь, любое изменение данных в таблицах что-то лочит.
Анализ должен был прояснить, за счет чего происходит замедление работы других пользователей. Если неясно, анализируйте еще.
Здравствуйте, wildwind, Вы писали:
W>Здравствуйте, Веселый кролик, Вы писали:
ВК>>Есть OeBS форма. При сохранении данных одним пользователем другие тормозят. После анализа трейса выяснилось, что таблица лочиться запросом FOR UPDATE.
W>Знаешь, любое изменение данных в таблицах что-то лочит. W>Анализ должен был прояснить, за счет чего происходит замедление работы других пользователей. Если неясно, анализируйте еще.
Здравствуйте, Веселый кролик, Вы писали:
ВК>Здравствуйте, an-392, Вы писали:
A3>>Здравствуйте, Веселый кролик, Вы писали:
ВК>Мля... Я читал это все. Меня интересует конкретно по задаче моей...
Не верю (с) Станиславский.
Здравствуйте, Веселый кролик, Вы писали:
ВК>Нельзя ли более конкретно? Куда копать?
Я думал, раз ты пишешь "после анализа трейса выяснилось", значит знаешь куда копать...
Нужно снять трассировку 8 уровня с сессии "другого пользователя" при нормальной работе и при замедленной (но выполнять при этом одни и те же действия), и сравнить их.