Чи потрібно об'єднати два таблиці на різних серверах з пов'язаним сервером, як згадано вище тут? Група адміністраторів баз даних керує цими об'єктами сервера, і вони не хочуть створювати надмірну кількість пов'язаних серверів.
Чи добре "приєднатися" до двох таблиць на різних серверах, спочатку прочитавши їх у пам'яті як змінну, і потенційно запустивши інший запит на іншому сервері з змінною з першого?
Використання C # для доступу до сервера SQL SERVER_A
, а потім отримувати всі записи з таблиці TABLE_A
, ми зберігаємо його до змінної колекції, скажімо VARIABLE_A
.
Потім ми можемо підключитися до SQL-сервера SERVER_B
, запустіть запит на вибір TABLE_B
з цією змінною VARIABLE_A
і спробуйте отримати результат приєднання TABLE_A
і TABLE_B
.
Чи дозволить це рішення досягти бажаних результатів (тобто функції, а не додаткових пов'язаних серверів)?
Відповіді:
2 для відповіді № 1Приєднання в пам'яті (з програми) є страшний ідея. Це вимагатиме (в кращому випадку) читання у всій таблиці, або (у гіршому випадку) виконання читання з другого сервера для кожного рядка, що повертається з першого.
Обидва ці способи збільшують накладні витрати на пам'ять, складність програми та використання мережі.
The пов'язаний сервер Варіант був би моїм first choice
.
А. далеко віддалені second choice
було б використовувати реплікацію і реплікувати базу даних другого сервера на перший сервер.