Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Fdw. Оптимизация гетерогенных запросов  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 467
Нужно оптимизировать запрос вида:
INSERT INTO server1.tb1()
SELECT t2...., t3...
FROM server2.tb2 t2
JOIN server1.tb3 t3
ON t2.someColumn = t3.someColumn 
where t2.AnotherColumn = some_variable2
and t3.OneMoreColumn = some_variable3


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

1. По умолчанию ограничения WHERE, содержащие встроенные операторы и функции, обрабатываются на удалённом сервере
То есть если я запущу этот запрос на server1, то на server2 пошлется команда
SELECT t2.... FROM tb2 t2 where t2.AnotherColumn = some_variable2
,
а если запущу на server2, то на server1,будет отправлен запрос
SELECT t3.... FROM tb3 t3 where t3.OneMoreColumn = some_variable3

?
2. Из каких соображений нужно выбирать основной и удаленный сервер -
назначать удаленным тот, откуда приезжает меньше данных?

3. Что если мы имеем дело с запросом вида
SELECT ...
FROM server1.tb1, server1.tb2, server1.tb3, server1.tb4, ..., server2.tb0
WHERE ...

в котором есть куча обращений к соединению таблиц из server1, но за счет фильтров приезжает мало строк,
а для server2.tb0 нет никаких фильтров, кроме условия соединения?
22 июл 20, 11:44    [22171591]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить