Репликация SQL Server (запросы и ограничения между базами данных) - PullRequest
1 голос
/ 09 ноября 2009

Мы хотим реплицировать данные из одной базы данных в несколько других (на другом сервере). Имеет ли смысл реплицировать эти таблицы в общую базу данных на другом сервере, и чтобы наши перекрестные запросы ссылались на общую базу данных ... или было бы более целесообразно выполнять репликацию в каждую отдельную базу данных на другом сервере? Могут ли объединения между базами данных повлиять на производительность? Будут ли ограничения между базами данных работать так, как ожидалось?

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

Редактировать: Похоже, что перекрестные ограничения базы данных невозможны на сервере SQL? Если это так, то нам нужно будет выполнить репликацию в каждую базу данных

1 Ответ

2 голосов
/ 09 ноября 2009

Кросс-запросы к базе данных несколько медленнее, чем внутри одной и той же БД. Внешние ключи работают только в одной БД. Обычный подход заключается в создании отдельной схемы в каждой БД (например, ETL), а затем реплицировать эти таблицы в эту схему. Этот подход на самом деле часто используется при репликации таблиц измерений между витринами данных.

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

...