【发布时间】:2010-10-22 06:14:02
【问题描述】:
我最近做了很多数据库重构,同义词非常有用。当我最初放入同义词时,我认为它们在我重构时会非常临时。现在我想可能有一些很好的理由来保留其中一些同义词。
有没有人用过它们 抽象层?
性能成本是多少?
索引有什么问题吗?
提示还是技巧?
我的第一个问题,所以请温柔一点。
谢谢
【问题讨论】:
标签: sql-server performance database-design synonym
我最近做了很多数据库重构,同义词非常有用。当我最初放入同义词时,我认为它们在我重构时会非常临时。现在我想可能有一些很好的理由来保留其中一些同义词。
有没有人用过它们 抽象层?
性能成本是多少?
索引有什么问题吗?
提示还是技巧?
我的第一个问题,所以请温柔一点。
谢谢
【问题讨论】:
标签: sql-server performance database-design synonym
由于同义词是已经存在的数据库对象的抽象/替代名称,因此在表的情况下,索引行为与底层对象的行为相同,即生成执行计划时,会生成相同的计划,而不管使用表名或对应的同义词。
【讨论】:
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES来获取表列表>如何使用查询获取同义词列表???
是的,同义词可以用作抽象层或间接层。例如,如果您需要访问外部数据库中的对象,而实际数据库名称要到运行时才能知道。您可以编写通过同义词名称引用对象的 sql,然后稍后动态创建同义词。
没有索引陷阱:如果同义词指的是表或索引视图,那么在这些对象上定义的任何索引都会起作用。
性能应该与通过完全限定名称显式引用对象相同。
【讨论】:
实际上,我在使用索引时遇到了一个问题……我不确定是否有办法在此站点上创建相关帖子,但这里是我的同义词和表索引问题的链接。
【讨论】: