Являются ли кросс-базы данных дорогими в SQL Server? Все базы данных находятся в одном экземпляре.
Являются ли кросс-базы данных дорогими в SQL Server? Все базы данных находятся в одном экземпляре.
Ответы:
Извините, у меня недостаточно репутации, чтобы комментировать вопрос, но из моего опыта, если клиентское приложение инициирует транзакцию для запроса, использующего перекрестные объединения баз данных, это приведет к распределению транзакции и получит накладные расходы на транзакцию DTC. ,
Накладные расходы на DTC в этом случае могут рассматриваться как отрицательные для производительности. Как правило, разница будет незначительной, хотя Microsoft описывает транзакции DTC так:
Распределенные транзакции обычно потребляют значительные системные ресурсы
... что может указывать на снижение производительности, если ваш сервер не может предложить необходимые ему ресурсы.
Просто для пояснения, в вышеприведенной статье описываются локальные транзакции, продвигаемые при внедрении удаленных систем, но я видел, что это происходит в случае транзакций на одном и том же сервере при использовании запросов к нескольким базам данных.
Как отмечает Томас Стрингер в своем комментарии, при аутентификации будут дополнительные издержки, хотя я думаю, что это будет зависеть от SID, и там будут минимальные издержки, если вам не придется использовать отдельные учетные данные для доступа к другой базе данных.
Если были различия в настройках базы данных, которые привели к дополнительным издержкам в объединении, что могло повлиять больше, чем предыдущие предложения - например, сопоставление базы данных Сравнение базы данных может проявляться как функциональная разница, а не просто разница в производительности.
Я думаю, что у Аарона есть самый сильный аргумент в пользу производительности, так как оптимизатор не имеет преимущества в использовании отношений для запросов между базами данных, тогда как самодостаточно внутри базы данных вы можете использовать отношения в ваших интересах.
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.
- Если вы обнаружили иное, сообщите об ошибке в Connect с четкими шагами воспроизведения.
В 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