Esta es una pregunta de diseño de base de datos genérica: ¿cuáles son los beneficios de usar un sinónimo en el desarrollo de una base de datos, en lugar de una vista simple? ¿Cuáles son las principales consideraciones a tener en cuenta al elegir entre los dos?¿Cuáles son los pros/contras de usar un sinónimo vs. una vista?
Un ejemplo vista:
CREATE VIEW Users AS
SELECT * FROM IdentitySystem.dbo.Users
Y el sinónimo equivalente:
CREATE SYNONYM Users
FOR IdentitySystem.dbo.LCTs
sentimos que arrastrar hasta un viejo hilo, pero tengo un dilema similar en cuanto a si utilizar una vista o sinónimo. Esa es una gran respuesta, gracias, pero en realidad no responde a la pregunta – DarthPablo
Tome 2: - Cierro arrastrar un hilo viejo, pero tengo un dilema similar sobre si usar una vista o un sinónimo. Gracias por tu buena explicación, también. La pregunta que tengo es si hay alguna razón _no_ para usar una vista "recta" al hacer "seleccionar * de la tabla"? ¿Es eso lo que mencionas que hace con el optimizador de consultas? Un problema que he encontrado con los sinónimos es que hacen que Hibernate se queje cuando la validación del esquema se activa con 'hibernate.hbm2ddl.auto = validate'. En cuanto a tus razones para usar un sinónimo, seguramente las dos primeras podrían abordarse con una vista, ¿no es así? – DarthPablo
De las 3 razones para usar un sinónimo, las dos primeras son igualmente aplicables a las vistas de proximidad ('' 'create view X_table as select * from another_database.dbo.X_table''') En cuanto a la tercera razón: 99% de el momento en que probablemente no haya penalización tampoco. Entonces, ¿qué son los misteriosos '' '... y muchos más'''? y ¿ellos importan? Un buen informe lo da @Jimmy Zimms – Konstantin