powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / подскажите по блокировкам, как искать, как проверять?
6 сообщений из 6, страница 1 из 1
подскажите по блокировкам, как искать, как проверять?
    #39252055
Фотография Legushka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ситуация такая:
в одной функции при генерации данных идет удаление старых данных и вставка новых

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

есть подозрение, что хоть удаление и прошло мгновенно, оно еще не сняло блокировку для инсерта
таблица очень большая около 20 гигов

подскажите плиз как это можно отловить, и что еще может быть причиной такого падения по скорости?
...
Рейтинг: 0 / 0
подскажите по блокировкам, как искать, как проверять?
    #39252067
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Legushka,

INSERT не должен блокироваться, за исключением ситуаций, когда кто-то держит блоки на уникальные индексы.

Процедура выполняется в одной сессии или в несколько параллельных?
Как настроен vacuum-ing таблицы (да и экземпляра в целом)?
Можете привести код, который делает эту работу?
...
Рейтинг: 0 / 0
подскажите по блокировкам, как искать, как проверять?
    #39252069
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Legushka,

Может, проблема решается описанным здесь способом?
...
Рейтинг: 0 / 0
подскажите по блокировкам, как искать, как проверять?
    #39252070
Фотография Legushka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может развести на разные транзакции предварительное удаление и инсерт данных?
...
Рейтинг: 0 / 0
подскажите по блокировкам, как искать, как проверять?
    #39252141
Фотография Legushka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
новые данные: ANALYZE роли в ускорении не сыграл, удаление само прошло быстро, после пришлось подождать выполнение ANALYZE
и уже потом ровно столько же выполнялся запрос на инсерт

такое возможно что он долго выполняется из за того что сперва склеивается текст запроса, учитывая разные условия
и только потом этот текст с инсертом запускается

может PG не хранит удачные планы по склеенным запросам? и каждый раз когда я запускаю склеенный запрос, планировщик с нуля все считает?
...
Рейтинг: 0 / 0
подскажите по блокировкам, как искать, как проверять?
    #39252191
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Legushkaновые данные: ANALYZE роли в ускорении не сыграл, удаление само прошло быстро, после пришлось подождать выполнение ANALYZE
и уже потом ровно столько же выполнялся запрос на инсерт

такое возможно что он долго выполняется из за того что сперва склеивается текст запроса, учитывая разные условия
и только потом этот текст с инсертом запускается

может PG не хранит удачные планы по склеенным запросам? и каждый раз когда я запускаю склеенный запрос, планировщик с нуля все считает?

PG вообще не хранит/не кеширует планы если вы не используете prepare явным образом (или в хранимках).
Вы лучше покажите ваш INSERT и сколько он времени работал.
Ну и EXPLAIN (analyze, costs, buffers, timing) для INSERT тоже работает.

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / подскажите по блокировкам, как искать, как проверять?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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