Связывание SQL Server и PostgreSQL

Обстановка до: SQL Server, содержащий в себе две базы данных, условно: база с данными и база с процедурами, которые обращаются к базе с данными.

Обстановка после: База с данными переезжает на Postgres, и с этим ничего нельзя поделать. База с процедурами остается на SQL Server и она довольно мобильна.

Проблема: В текущей обстановке имеется несколько сложностей в общении между базами:

  • Скорость запросов на SQL Server стала значительно ниже из-за обращения к Postgres;
  • Требуется переписывать почти все процедуры для замены источника данных;

Основной вопрос: Какие действия можно предпринять для решения проблем разделения баз данных? В данный момент я выбираю либо простую заменой источника данных и мирюсь с тем, что процедуры и запросы выполняются в несколько раз дольше (в некоторых случаях, вместо 0.2 с. запрос выполняется 4 минуты). Либо настраиваю репликацию данных из Postgres на SQL Server. Может я что-то ещё упускаю, и есть способы проще и эффективнее.


Ответы (1 шт):

Автор решения: Юрий Евгеньевич

Самый быстрый способ обращения в PostgreSQL из MSSQL- это RPC.

Подготовили запрос для pg, вызвали. Так можно протолкнуть очень большой скрипт. На практике проталкивал json размером 30 мегабайт.

EXECUTE('select ....') AT PGLinkedServer

Но в целом архитектурно всё очень криво, переходите на pg полностью, отказывайтесь от mssql.

→ Ссылка