Re: [pgsql-ru-general] Re: [pgsql-ru-general] борьба с дедлоками
От | Сергей Муравьёв |
---|---|
Тема | Re: [pgsql-ru-general] Re: [pgsql-ru-general] борьба с дедлоками |
Дата | |
Msg-id | CAOzrXHRpmUDRz93XD+8nfiF6KVkCR9MGUg0-U=w4pV_TEoDCwA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [pgsql-ru-general] борьба с дедлоками (Миша Тюрин <tmihail@bk.ru>) |
Ответы |
Re: [pgsql-ru-general] Re: [pgsql-ru-general] Re: [pgsql-ru-general] борьба с дедлоками
|
Список | pgsql-ru-general |
Думаю, что ORDER BY определяет только сортировку результатов, а оптимизатор
--
С уважением
Муравьёв Сергей
запросов может определить совсем другой порядок обработки строк.
Тут нужно пробовать блокировать таблицы целиком (http://www.postgresql.org/docs/9.1/static/sql-lock.html):
BEGIN WORK; LOCK TABLE objects IN EXCLUSIVE MODE; ... UPDATE
"objects"
SET
"status" = "..."
FROM
"list"
WHERE
"list"."uuid" = "objects"."uuid" COMMIT WORK;
BEGIN WORK; LOCK TABLE objects IN EXCLUSIVE MODE; ... UPDATE
"objects"
SET
"x" = "...", "y"="..."
FROM
"list"
WHERE
"list"."uuid" = "objects"."uuid" COMMIT WORK;
В каждый момент времени только один процесс будет иметь возможность писать в таблицу.
8 мая 2013 г., 2:34 пользователь Dmitry E. Oboukhov <unera@debian.org> написал:
> Сортировка поможет.
приписал в обоих запросах ORDER BY "uuid". как сыпались дедлоки так и
продолжают сыпаться.
постгря - 9.1.2
очень не хочется лочить таблицу вообще перед групповой записью.
есть еще варианты какие-либо? подскажите--
. ''`. Dmitry E. Oboukhov
: :’ : email: unera@debian.org jabber://UNera@uvw.ru
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21
`- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
iEYEAREDAAYFAlGJgYMACgkQq4wAz/jiZTdE5wCgwXNqmM8xYOHfxhxT23ScdFDR
878AnRqCcuUy1ylSVDT6dfqJM5VAf8vz
=gSe+
-----END PGP SIGNATURE-----
С уважением
Муравьёв Сергей
В списке pgsql-ru-general по дате отправления: