SQL同义词和性能

4

我有一些报表和不同环境的需求,使用SQL Synonym 对我们的解决方案非常有意义。

http://technet.microsoft.com/en-us/library/ms177544.aspx

然而,由于“性能影响”,运营支持部门并不喜欢这个想法。我无法看出会有任何性能下降的原因。但是,是否有人有使用 SYNONYM 处理中等规模数据库(100GB)和性能问题的经验?

我应该担心吗?或者微软已经解决了这个问题,并且在查询中使用 SYNONYM 或完全限定的 [Database].[schema].[tablename] 是否有任何差别 - 从性能上考虑?


1
你们的运营支持部门有些困惑。同义词只是一个别名(或者你可以说是一个指针);不确定可能会有什么性能影响,除非开发人员透明地知道这个由can和string连接的链接服务器上的表实际上被这个两部分的同义词引用... 或者如果你使用显式索引提示(!) 并且使用的是一个古老未打补丁的SQL Server版本。 - Aaron Bertrand
SQL Server - 同义词技巧和提示?的副本 - underscore_d
2个回答

2

这里有一个关于同义词的好的SO线程。在同一台服务器上,性能不应该是一个问题。但我不确定在跨服务器情况下是否会有影响。

https://dev59.com/SXRA5IYBdhLWcg3w4R_o


在这种情况下,您应该将此线程标记为其他线程的副本,而不是发布答案。 - underscore_d

1
使用链接服务器或跨数据库查询时,可能会引入潜在且已经被充分记录的性能问题。例如,查询通常变成了分布式查询。此外,优化器对远程统计信息有限或根本没有访问权限,因此查询计划不太可能是“最优”的。 使用同义词只是将复杂性隐藏在一个类似于本地引用的别名下,诱使开发人员在链接服务器之间执行不应该执行的操作,如嵌套子查询和复杂的多表连接。
话虽如此,我正在认真考虑使用同义词,但我将通过命名约定(例如syn_theTable)和编码规则强调它们的特殊性质。

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