同义词会影响远程查询性能吗

Nei*_*l P 3 sql-server sql-server-2014

我有一项任务需要将现有数据库迁移到新服务器。

有问题的数据库具有查询同一服务器上的另一个数据库的存储过程,不会移动第二个数据库。

我很想使用同义词指向链接服务器上的另一个数据库,因为这将使设置和维护变得非常容易,但是我想知道同义词是否可能导致执行计划的性能问题,或者如果只是跨服务器查询是问题所在。

Aar*_*and 7

同义词只是一个指针,在优化之前被简化。如果你有这个:

CREATE SYNONYM dbo.foo FOR OtherServer.db.dbo.blat;
Run Code Online (Sandbox Code Playgroud)

然后这两个将优化相同,产生相同的执行计划(都有一个Remote Query指向的运算符blat):

SELECT bar FROM dbo.foo;

SELECT bar FROM OtherServer.db.dbo.blat;
Run Code Online (Sandbox Code Playgroud)

你可以很容易地测试这个。