【问题标题】:SQL Server - Synonyms Tips & Tricks? [closed]SQL Server - 同义词提示和技巧? [关闭]
【发布时间】:2010-10-22 06:14:02
【问题描述】:

我最近做了很多数据库重构,同义词非常有用。当我最初放入同义词时,我认为它们在我重构时会非常临时。现在我想可能有一些很好的理由来保留其中一些同义词。

  • 有没有人用过它们 抽象层?

  • 性能成本是多少?

  • 索引有什么问题吗?

  • 提示还是技巧?

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

谢谢

【问题讨论】:

    标签: sql-server performance database-design synonym


    【解决方案1】:

    由于同义词是已经存在的数据库对象的抽象/替代名称,因此在表的情况下,索引行为与底层对象的行为相同,即生成执行计划时,会生成相同的计划,而不管使用表名或对应的同义词。

    【讨论】:

    • 我们可以通过同样的方式查询SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES来获取表列表>如何使用查询获取同义词列表???
    • 选择 schema_name(schema_id) + '.' + 来自 sys.tables 的名称 select schema_name(schema_id) + '.' + name, * from sys.procedures select schema_name(schema_id) + '.' + 来自 sys.views 的名称
    • 选择 schema_name(schema_id) + '.' + 名称、base_object_name、来自 sys.synonyms 的 modify_date
    【解决方案2】:

    是的,同义词可以用作抽象层或间接层。例如,如果您需要访问外部数据库中的对象,而实际数据库名称要到运行时才能知道。您可以编写通过同义词名称引用对象的 sql,然后稍后动态创建同义词。

    没有索引陷阱:如果同义词指的是表或索引视图,那么在这些对象上定义的任何索引都会起作用。

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

    【讨论】:

      【解决方案3】:

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

      SQL Server Table Synonyms with Indexes

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-10-08
        • 2010-11-29
        • 1970-01-01
        • 1970-01-01
        • 2011-05-02
        • 2010-09-16
        相关资源
        最近更新 更多