2009-04-28 54 views
15

最近我一直在做很多數據庫重構,並且同義詞已經變得非常有用。當我最初放入同義詞時,我認爲在重構時它們會非常臨時。現在我想可能有一些很好的理由來保留這些同義詞。SQL Server - 同義詞提示與技巧?

  • 是否有人使用過它們作爲全面打擊 抽象層?

  • 性能成本是多少?

  • 任何有索引的陷阱?

  • 提示或技巧?

我的第一個問題,所以請溫柔。

由於

回答

12

作爲同義詞是一個已經存在的數據庫對象的抽象/替代名稱,在一個表中的情況下,指數行爲是相同的生成執行計劃時底層對象即,該無論使用表名還是使用相同的同義詞,都會生成相同的計劃。

+0

尼斯工作史蒂夫 – 2009-05-01 13:14:23

3

是的,同義詞可以用作抽象層或間接層。例如,如果您需要訪問外部數據庫中的實際數據庫名稱直到運行時纔會知道的對象。您可以用同義詞名稱來引用對象,並在稍後動態創建同義詞。

沒有索引問題:如果同義詞引用了表或索引視圖,那麼在這些對象上定義的所有索引都在播放。

性能應該與通過完全限定名稱顯式引用對象相同。

5

實際上,我在使用索引時遇到了一個問題....我不確定是否有辦法在此網站上創建相關帖子,但這裏是我的問題的鏈接,其中包含同義詞和表索引。

SQL Server Table Synonyms with Indexes