|
Модераторы: LSD |
|
polin11 |
|
||||||||
Шустрый Профиль Группа: Участник Сообщений: 122 Регистрация: 6.6.2015 Репутация: нет Всего: нет |
Использую PGSQL.
Есть таблица записей ~ 1000 000 записей
При авторизации пользователя в аккаунт идет пересчет поля salary в целом по аккаунту для всех пользователей
Перед обновление делаю блокировку по аккаунту с таймаутом 5 секунд.
В процессе обновления могут выполнятся обновления по конкретному сотруднику из этого аккаунта, я также ставлю блокировку по аккаунту.
Когда общий запрос обновления по аккаунту (большой аккаунт) выполняется долго > 5 секунд, то падает ошибка на второй запрос обновления по сотруднику ошибка canceling statement due to statement timeout. Понятно, что оптимальное решение ускорить запрос расчета целиком по аккаунту. Плохо разбираюсь в тебе блокировок в PGSQL, просьба подсказать как исправить ситуацию с точки зрения блокировок, в какую сторону смотреть? |
||||||||
|
|||||||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 3 Всего: 453 |
Гм... а зачем? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
polin11 |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 122 Регистрация: 6.6.2015 Репутация: нет Всего: нет |
После автозир. пользователя идет пересчет для всех пользователей, т.к. нужно пользователю показать salary из аккаунта всех пользователей из аккаунта.
А изменять конкретный пользователь может менять только свой salary |
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PostgreSQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |