¿Son caras las consultas entre bases de datos en SQL Server? Todas las bases de datos están en la misma instancia.
¿Son caras las consultas entre bases de datos en SQL Server? Todas las bases de datos están en la misma instancia.
Respuestas:
Lo siento, no tengo suficiente reputación para comentar sobre la pregunta, pero según mi experiencia, si la aplicación del cliente genera una transacción para una consulta que utiliza uniones de bases de datos cruzadas, entonces promovería la transacción para distribuirla y tendría los gastos generales de una transacción DTC .
La sobrecarga de DTC en este caso podría verse como negativa para el rendimiento. En general, la diferencia sería insignificante, aunque Microsoft describe las transacciones DTC como tales:
Las transacciones distribuidas generalmente consumen recursos significativos del sistema
... lo que sugeriría una degradación del rendimiento si su servidor no puede ofrecer los recursos que requiere.
Solo para aclarar, el artículo anterior describe las transacciones locales que se promueven cuando se introducen sistemas remotos, pero he visto que este es el caso de las transacciones en el mismo servidor cuando se utilizan consultas de bases de datos cruzadas.
Como Thomas Stringer señala en su comentario, habrá una sobrecarga adicional en la autenticación, aunque creo que ya que esto será impulsado por SID, habrá una sobrecarga mínima allí a menos que tenga que usar credenciales separadas para acceder a la otra base de datos.
Si hubo diferencias en la configuración de la base de datos que causó una sobrecarga adicional en la unión que podría tener un impacto mayor que las sugerencias anteriores, por ejemplo, la recopilación de bases de datos. La recopilación de la base de datos podría manifestarse como una diferencia funcional, no solo como una diferencia de rendimiento.
Creo que Aaron tiene el argumento más sólido para el rendimiento, ya que el optimizador no tiene la ventaja de usar relaciones para consultas de bases de datos cruzadas, mientras que el contenido de una base de datos puede contener las relaciones para su ventaja.
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.
- Si ha encontrado lo contrario, informe un error en Connect con pasos claros de reproducción.
En SQL Server 2014, las tablas con memoria optimizada no admiten transacciones entre bases de datos. No puede acceder a otra base de datos desde la misma transacción o la misma consulta que también accede a una tabla con memoria optimizada. No puede copiar fácilmente datos de una tabla en una base de datos a una tabla con memoria optimizada en otra base de datos.http://msdn.microsoft.com/en-us/library/dn584627(v=sql.120).aspx Las transacciones distribuidas y entre bases de datos no son compatibles con la duplicación de bases de datos / AOAG. http://technet.microsoft.com/en-us/library/hh393530.aspx . Si va a utilizar el encadenamiento de propiedad, tenga en cuenta los riesgos de seguridad http://msdn.microsoft.com/en-us/library/ms188676.aspx