在同一台服务器上的数据库之间使用SQL Linked Servers的任何开销?

时间:2009-11-18 17:11:28

标签: sql-server visual-studio linked-server

我们正在寻找解决我们不同的开发/测试/产品环境中的问题。

目前,我们必须记住在从UAT迁移到Production时更改存储过程中链接服务器的名称。例如,在Production中,SMOLDB中的sproc通过链接服务器调用LS_AUTH.AuthenticationDB.dbo.SomeSproc,因为AuthenticationDB位于不同的服务器上。但在Dev和UAT SMOLDB和身份验证是在同一台服务器上。

为了避免这种风险,我们认为我们将在所有环境中建立对链接服务器的一致引用。因此,即使在UAT中,我们也会创建一个LS_AUTH链接服务器,而SMOLDB仍将调用LS_AUTH.AuthenticationDB.dbo.SomeSproc

对链接服务器的调用是否会在解析之前进入网络?当这两个数据库位于同一台服务器上而不需要通过链接服务器时,不确定是否要影响网络流量。

ServerVariables的想法我想是一个选项......

3 个答案:

答案 0 :(得分:4)

在SQL Server中,您还可以使用同义词来解决该问题。在查询和存储过程中使用同义词,只需为生产服务器准备同义词。

答案 1 :(得分:1)

我们使用链接服务器在生产和测试服务器上完成这项工作。我们从未注意到任何性能开销。流量肯定不会通过网络。

答案 2 :(得分:1)

这可能不适合您,但我们在这里遇到了类似的问题。在我们的生产环境中,我们有2台服务器,每台服务器有1个DB。我们使用链接服务器在2之间来回切换。

现在,在我们的测试/开发环境中,我们使用了2个SQL服务器实例; MYSERVER \ LIVEDB和MYSERVER \ LOCALDB。这使我们能够像生产中的设置一样设置链接服务器。

就性能而言;我们没有发现任何与众不同的事情。