@bbrudastyy

Как оптимизировать update postgresql?

Всем привет
Столкнулся с проблемой, что очень долго отрабатывает такой sql запрос на postgresql
UPDATE orders_new
SET client_code=access.title
FROM orders_new O
LEFT JOIN access ON access.id=O.client_id
WHERE O.client_code IS NULL;

В таблице orders_new индекс на client_code
В таблице orders_new 3271586 записей, из них подходящих под условие 345029
В таблице access 5534 записей, из них с подходящими id 14
Планировщик показывает следующее
6266cef8cfe29674864388.png
6266cf1b8cac5201564853.png
  • Вопрос задан
  • 273 просмотра
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
UPDATE orders_new
SET client_code=access.title
FROM orders_new O

Ну классика жанра. Если не видите self-join - то посмотрите ещё раз. Очевидно ошибочный запрос.

https://www.postgresql.org/docs/current/sql-update.html
Do not repeat the target table as a from_item unless you intend a self-join (in which case it must appear with an alias in the from_item).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы