我最近一直在做很多数据库重构,同义词已经非常有用了。当我最初输入同义词时,我认为在重构时它们会非常短暂。现在我想可能有一些很好的理由来保留这些同义词。
有没有人用它们作为全面打击 抽象层?
性能成本是多少?
任何有索引的问题?
提示或技巧?
我的第一个问题,请温柔。
由于
答案 0 :(得分:13)
作为同义词是已存在的数据库对象的抽象/替代名称,在表的情况下,索引行为与基础对象的行为相同,即,当生成执行计划时,生成相同的计划而不管使用表名或相应的同义词。
答案 1 :(得分:5)
实际上,我在使用索引时遇到了问题....我不确定是否有办法在此站点上创建相关帖子,但这里是我的同义词和表索引问题的链接。
答案 2 :(得分:3)
是的,同义词可以用作抽象层或间接层。例如,如果您需要访问外部数据库中的对象,那么在运行时之前将不知道实际的数据库名称。您可以通过同义词名称编写引用对象的sql,然后稍后动态创建同义词。
没有索引陷阱:如果同义词引用表或索引视图,那么在这些对象上定义的任何索引都在起作用。
性能应与通过完全限定名称明确引用对象相同。