2009-11-18 37 views
2

我们正在寻求解决我们在不同开发/测试/产品环境中的问题。在同一台服务器上的数据库之间使用SQL链接服务器的任何开销?

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

为了解决这个风险,我们认为我们会在所有环境中为链接服务器设置一致的引用。因此,即使在UAT中,我们也会创建一个LS_AUTH链接服务器,并且SMOLDB仍然会调用LS_AUTH.AuthenticationDB.dbo.SomeSproc

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

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

回答

4

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

+0

+1很酷,我不知道你可以使用整个数据库的同义词:) – Andomar 2009-11-18 18:23:42

1

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

1

这可能不适合你,但我们在这里有类似的问题。在我们的生产环境中,我们有2台服务器,每台服务器有1个DB。我们使用链接服务器在2.

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

就表现而言;我们没有注意到任何不寻常的事情。

相关问题