Оболочка сторонних данных - это только другой способ запроса удаленных данных.Если вы создаете внешнюю таблицу, любой SELECT, который обращается к этой таблице, перенаправляется на внешний сервер (в вашем случае, SQL Server).
Таким образом, данные только хранятся в SQL Server.
Когда вы выбираете из внешней таблицы, оболочка для внешних данных отправит инструкцию SELECT на SQL Server.Затем SQL Server обработает запрос и отправит данные обратно на сервер Postgres.Оболочка сторонних данных затем передает данные обратно в ваше приложение (которое подключено к вашему серверу Postgres).Некоторые операции могут быть «перенесены» на внешний сервер FDW, так что Postgres не нужно их обрабатывать.Я не знаю деталей реализации tds_fdw, но такие вещи, как предложение WHERE
, обычно передаются на удаленный сервер, так что только соответствующие данные обрабатываются на стороне Postgres.
С точки зрения MS SQL Server, FDW - это просто еще один клиент, отправляющий SQL-запросы.
Пока MS SQL Server обрабатывает запрос, Postgres (или, точнее, серверная часть, созданная для вашего соединения с Postgres) простаивает (ничего не делает) и ожидает завершения обработки MS SQL Server.