сложного запроса на удаленный сервер улетает много explain запросов. В итоге планировщик выбирает запрос с group by. Количество возвращаемых строк много больше 1. Но если смотреть explain на локальной машине, то он говорит, что вернется одна строка, и из-за этого далее выбирается неоптимальный план с nested loop. судя по исходникам, там обычный sscanf(p, "(cost=%lf..%lf rows=%lf width=%d)", startup_cost, total_cost, rows, width). Но количество строк почему-то разное.
А можете показать тот и другой EXPLAIN-ы (результат отсылаемого на foreign server, причём, под тем же пользователем, под которым работает FDW)?
Обсуждают сегодня