2009-04-28 17 views
15

Ultimamente ho eseguito numerosi refactoring di DB e i sinonimi si sono rivelati incredibilmente utili. Quando ho inserito i sinonimi in origine pensavo che sarebbero stati molto temporanei mentre io refactoring. Ora penso che potrebbero esserci alcune buone ragioni per tenere in giro alcuni di questi sinonimi.SQL Server - Suggerimenti e trucchi per sinonimi?

  • Qualcuno ha li ha usati come pieno livello di astrazione colpo ?

  • Quali sono i costi delle prestazioni?

  • Eventuali trucchi con indici?

  • Consigli o suggerimenti?

La mia prima domanda, quindi per favore sii gentile.

Grazie

risposta

12

Come tradurre è/nome alternativo astrazione per un oggetto di database già esistente, nel caso di una tabella, il comportamento di indice è identico a quello della ossia dell'oggetto sottostante quando si generano piani di esecuzione, la lo stesso piano viene generato indipendentemente dall'utilizzo del nome della tabella o del sinonimo corresponsabile.

+0

Bel lavoro steve –

+0

possiamo ottenere l'elenco delle tabelle da quering 'SELEZIONA TABLE_NAME DA INFORMATION_SCHEMA.TABLES' stesso modo > Come posso ottenere l'elenco dei sinonimi utilizzando Query ??? – RSK

+0

select schema_name (schema_id) + '.' + nome da sys.tables select schema_name (schema_id) + '.' + nome, * da sys.procedures select schema_name (schema_id) + '.' + nome da sys.views – Sage

3

Sì, i sinonimi possono essere utilizzati come livello di astrazione o livello di riferimento indiretto. Ad esempio, se è necessario accedere agli oggetti in un database esterno in cui il nome effettivo del database non sarà noto fino al runtime. Puoi scrivere il tuo sql che si riferisce agli oggetti per nome del sinonimo e quindi creare dinamicamente i sinonimi in seguito.

Non ci sono trucchi per l'indice: se il sinonimo si riferisce a una tabella oa una vista indicizzata, allora qualsiasi indice è definito su quegli oggetti sono in gioco.

Le prestazioni devono essere le stesse del riferimento esplicito all'oggetto tramite il nome completo.

5

In realtà, mi sono imbattuto in un Gotcha quando si utilizzano gli indici .... io non sono sicuro se c'è un modo per creare i messaggi correlati in questo sito, ma ecco il link al mio problema con sinonimi e indici delle tabelle .

SQL Server Table Synonyms with Indexes

Problemi correlati