SQL Server - 同义词技巧和技巧?

17

最近我一直在进行数据库重构,同义词非常有用。当我最初加入同义词时,我认为它们只是重构过程中的临时工具。现在我认为保留其中一些同义词可能有一些好的理由。

  • 有人将它们用作完整的抽象层吗?

  • 性能成本如何?

  • 索引方面有什么要注意的吗?

  • 有什么技巧或建议吗?

这是我的第一个问题,请温柔点。

谢谢。


你的第一个问题在2022年仍然很有用。 :) - Vivek Shukla
3个回答

15
作为一个抽象/替代名称,同义词是现有数据库对象的替代。对于表格而言,索引行为与底层对象相同,即生成执行计划时,无论使用表名还是相应的同义词,都会生成相同的计划。

我们可以通过查询 SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES 来获取表列表,同样的方法,您可以使用查询语句获取同义词列表吗? - RSK
从sys.tables中选择schema_name(schema_id)+ '.' + name从sys.procedures中选择schema_name(schema_id)+ '.' + name,*从sys.views中选择schema_name(schema_id)+ '.' + name - Sage
1
选择 schema_name(schema_id) + '.' + name, base_object_name, modify_date 从 sys.synonyms。 - Glen Little

6

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

SQL Server表同义词与索引


4
是的,同义词可以用作抽象层或间接层。例如,如果您需要访问外部数据库中的对象,而实际的数据库名称在运行时是未知的。您可以编写 SQL 引用同义词名称的对象,然后稍后动态创建同义词。
没有索引陷阱:如果同义词引用表或索引视图,则这些对象上定义的任何索引都会生效。
性能应该与通过完全限定名称显式引用对象相同。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接