2009-04-28 27 views
15

He estado haciendo un montón de refactorización de bases de datos últimamente y los sinónimos me han llegado increíblemente útiles. Cuando originalmente puse los sinónimos, pensé que serían muy temporales mientras refactorizaba. Ahora estoy pensando que podría haber algunas buenas razones para mantener algunos de estos sinónimos.SQL Server - Consejos y trucos de sinónimos?

  • alguien les ha utilizado como golpe completo capa de abstracción?

  • ¿Cuáles son los costos de rendimiento?

  • ¿Algún problema con los índices?

  • ¿Consejos o trucos?

Mi primera pregunta, por favor sea amable.

Gracias

Respuesta

12

Como sinónimo es un/nombre alternativo abstracción de un objeto base de datos ya existente, en el caso de una mesa, el comportamiento índice es idéntico al de la es decir objeto subyacente cuando se generan los planes de ejecución, la el mismo plan se genera independientemente del uso del nombre de tabla o el sinónimo correspondiente.

+0

Buen trabajo Steve –

+0

podemos obtener la lista de tablas por quering SELECT TABLE_NAME DE INFORMATION_SCHEMA.TABLES' misma manera > ¿Cómo puedo obtener los sinónimos consulta utilizando ??? – RSK

+0

seleccione schema_name (schema_id) + '.' + nombre de sys.tables seleccione schema_name (schema_id) + '.' + nombre, * desde sys.procedures seleccione schema_name (schema_id) + '.' + nombre de sys.views – Sage

3

Sí, los sinónimos se pueden utilizar como una capa de abstracción o capa de indirección. Por ejemplo, si necesita acceder a objetos en una base de datos externa donde el nombre de la base de datos real no se conocerá hasta el tiempo de ejecución. Puede escribir su sql referente a objetos por nombre de sinónimo, y luego crear dinámicamente los sinónimos más adelante.

No hay errores en el índice: si el sinónimo se refiere a una tabla o vista indizada, entonces los índices que se definan en esos objetos están en juego.

El rendimiento debe ser el mismo que el que se refiere explícitamente al objeto con un nombre totalmente calificado.

5

En realidad, me he encontrado con un gotcha cuando uso índices ... No estoy seguro si hay una manera de crear publicaciones relacionadas en este sitio, pero aquí está el enlace a mi problema con sinónimos y índices de tabla .

SQL Server Table Synonyms with Indexes

Cuestiones relacionadas