2009-04-28 87 views
15

最近我一直在做很多数据库重构,并且同义词已经变得非常有用。当我最初放入同义词时,我认为在重构时它们会非常临时。现在我想可能有一些很好的理由来保留这些同义词。SQL Server - 同义词提示与技巧?

  • 是否有人使用过它们作为全面打击 抽象层?

  • 性能成本是多少?

  • 任何有索引的陷阱?

  • 提示或技巧?

我的第一个问题,所以请温柔。

由于

回答

12

作为同义词是一个已经存在的数据库对象的抽象/替代名称,在一个表中的情况下,指数行为是相同的生成执行计划时底层对象即,该无论使用表名还是使用相同的同义词,都会生成相同的计划。

+0

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

3

是的,同义词可以用作抽象层或间接层。例如,如果您需要访问外部数据库中的实际数据库名称直到运行时才会知道的对象。您可以用同义词名称来引用对象,并在稍后动态创建同义词。

没有索引问题:如果同义词引用了表或索引视图,那么在这些对象上定义的所有索引都在播放。

性能应该与通过完全限定名称显式引用对象相同。

5

实际上,我在使用索引时遇到了一个问题....我不确定是否有办法在此网站上创建相关帖子,但这里是我的问题的链接,其中包含同义词和表索引。

SQL Server Table Synonyms with Indexes