powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Ошибки deadlock detected
2 сообщений из 2, страница 1 из 1
Ошибки deadlock detected
    #40130531
polin11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использую PGSQL.
Есть таблица записей ~ 1000K записей
https://www.db-fiddle.com/f/efkuMVy21JWNTE1HyTgYYk/0
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE TABLE forms (
	id serial PRIMARY KEY,
	account int not null,
	author text,
    salary int NOT NULL
);
insert into  forms(account, author, salary) values 
(1, 'Иванов', 30),
(1, 'Петров', 40),
(2, 'Сидоров', 40),
(2, 'Сергеев', 50)



Есть запросы с UPDATE, INSERT, DELETE к этой таблице.
стали падать ошибки

Код: sql
1.
2.
3.
4.
ERROR: deadlock detected
DETAIL: Process 3415 waits for ShareLock on transaction 1958114794; blocked by process 87442.
Process 87442 waits for ShareLock on transaction 1958114529; blocked by process 3415.
HINT: See server log for query details.



Решил сделать блокировку по аккаунту на 5 секунд

Код: sql
1.
2.
3.
4.
5.
6.
BEGIN ISOLATION LEVEL READ COMMITTED READ WRITE;
SET LOCAL statement_timeout = '5000ms'; 
SELECT PG_ADVISORY_XACT_LOCK("lock_id") FROM (
                SELECT UNNEST('{1100889}'::BIGINT[]) AS "lock_id"
            ) LocksId      
RESET statement_timeout



Это помогло избавиться от deadlock detected, но возникла другая проблема.
Если происходят частые вызовы 10 вызовов с интервалом 0.1 сек. для обновления сотрудников
из одного аккаунта, то блокировку невозможно создать.
Сами запросы сильно не тормозят, пробовал их ускорить по максимуму.

Есть ли какие-нибудь универсальные решения таких проблем?
Может кто-то сталкивался, есть общие советы?
Можно ли почитать что-нибудь по данному вопросу?
...
Рейтинг: 0 / 0
Ошибки deadlock detected
    #40130558
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Покажите запросы, которые вызывают deadlock.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Ошибки deadlock detected
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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