Чи дорогі запити міжбазових даних у SQL Server дорогі? Всі бази даних знаходяться в одному екземплярі.
Чи дорогі запити міжбазових даних у SQL Server дорогі? Всі бази даних знаходяться в одному екземплярі.
Відповіді:
Вибачте, у мене недостатньо репутації, щоб коментувати це питання, але, з мого досвіду, якщо клієнтська програма піднімає транзакцію для запиту, який використовує перехресні бази даних, тоді це сприятиме розподілу транзакції і матиме накладні витрати транзакції DTC. .
Накладні витрати DTC в цьому випадку можуть розглядатися як негативні показники. Як правило, різниця була б незначною, хоча Microsoft описує транзакції DTC як такі:
Розподілені транзакції зазвичай споживають значні системні ресурси
... що може запропонувати зниження продуктивності, якщо ваш сервер не може запропонувати необхідні ресурси.
Для уточнення, вищенаведена стаття описує локальні транзакції, які просуваються при впровадженні віддалених систем, але я бачив, як це сталося для транзакцій на тому ж сервері, коли використовуються запити міжбазових баз даних.
Як зазначає Томас Стрінджер у своєму коментарі, додаткові накладні витрати на аутентифікацію, хоча, я думаю, оскільки це буде SID-орієнтація, там буде мінімально накладні витрати, якщо вам не доведеться використовувати окремі облікові дані для доступу до іншої бази даних.
Якщо були б різниці в налаштуваннях бази даних, це призвело до додаткових накладних витрат при з'єднанні, що може вплинути більше, ніж попередні пропозиції - наприклад, зіставлення баз даних. Зіставлення баз даних може проявлятись як функціональна різниця, а не лише різниця в продуктивності.
Я думаю, що Aaron має найсильніший аргумент для продуктивності роботи оптимізатора, не маючи переваги використовувати зв'язки для запитів міжбазовими базами даних, тоді як у власній базі даних ви можете використовувати відносини на вашу користь.
If a local transaction spans two or more databases on the same instance of the Database Engine, the instance uses an internal two-phase commit to commit all of the databases involved in the transaction.- Якщо ви виявили інше, повідомте про помилку підключення підключення з чіткими кроками відтворення.
У SQL Server 2014 таблиці, оптимізовані для пам’яті, не підтримують транзакції міжбазовими базами даних. Ви не можете отримати доступ до іншої бази даних з тієї ж транзакції або того ж запиту, який також отримує доступ до таблиці, оптимізованої для пам'яті. Ви не можете легко скопіювати дані з таблиці в одну базу даних, в оптимізовану для пам'яті таблицю в іншій базі даних. http://msdn.microsoft.com/en-us/library/dn584627(v=sql.120).aspx Розподілені та міжбазові транзакції не підтримуються для дзеркального відображення баз даних / AOAG. http://technet.microsoft.com/en-us/library/hh393530.aspx . Якщо ви збираєтесь використовувати ланцюжок власності, пам’ятайте про ризики безпеки http://msdn.microsoft.com/en-us/library/ms188676.aspx