БД ссылки используют хорошо или плохо - PullRequest
0 голосов
/ 15 мая 2018

У меня есть ситуация, когда мне нужно направить поток XML в одну схему и синхронизировать данные с несколькими схемами.

ех. SCHEMA_1 @ DB1, SCHEMA_2 @ DB2

Файл будет отправлен в SCHEMA_1, а также необходимо вставить, обновить или выбрать измененные данные из второй.

Между тем я использую ссылки на БД для выполнения этого требования, и мне интересно знать, что я иду с хорошим подходом.

Примечание: я должен выполнить эту задачу только с помощью процедуры, поэтому я использую ссылки на БД.

Пожалуйста, предложите, если есть какие-либо проблемы с производительностью с этим подходом или может возникнуть какая-либо динамическая ошибка, другие недостатки, если таковые имеются.

1 Ответ

0 голосов
/ 15 мая 2018

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

Если вы используете веб-сервисы для связи, вы также можете использовать его для решения вашей проблемы. Но если у вас еще нет интерфейсов, db-ссылки - самый простой способ переместить данные. Таким образом, вам не нужно ничего кодировать (похоже, что вы уже получили некоторые хранимые процедуры).

Но учтите:

forall и bulk collect не будут работать с db-ссылкой. Если они вам не нужны, я не вижу проблем в использовании db-ссылок.

И подумайте о добавлении подсказок для больших отборов:

SELECT /*+DRIVING_SITE(b)*/
      *
  FROM localTable a, otherTable@otherDb b
 WHERE a.id = b.id
   AND a.Name like '%x%'
   AND b.Name like '%y%';

Таким образом, вы указываете своей БД, что оператор должен быть рассчитан на "otherDb". Это полезно, если вы получили очень маленькую локальную таблицу и большую таблицу в другой базе данных. Вы всегда должны сначала отфильтровать большую, а затем начать объединять другие таблицы.

В любом случае: каждая ситуация имеет свои требования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...