我们希望在不同的开发/测试/生产环境中解决问题。
目前,当我们从UAT迁移到生产环境时,必须记住更改存储过程中链接服务器的名称。例如,在生产环境中,由于AuthenticationDB位于不同的服务器上,因此SMOLDB中的存储过程会跨链接服务器调用LS_AUTH.AuthenticationDB.dbo.SomeSproc。但在Dev和UAT中,SMOLDB和Authentication位于同一台服务器上。
为了规避这种风险,我们认为应该在所有环境中设置对链接服务器的一致引用。因此,即使在UAT中,我们也会创建一个LS_AUTH链接服务器,并且SMOLDB仍然会调用LS_AUTH.AuthenticationDB.dbo.SomeSproc
对链接服务器的调用是否会在解析前转到网络上?不确定在两个数据库位于同一台服务器上且不需要通过链接服务器的情况下,我们是否希望影响网络流量。
我想ServerVariables的想法是一种选择。
发布于 2009-11-19 01:54:58
在SQL server中,您还可以使用同义词来解决该问题。在查询和存储过程中使用同义词,只需为生产服务器准备同义词。
发布于 2009-11-19 01:21:24
我们使用链接服务器在生产服务器和测试服务器上执行此操作。我们从未注意到任何性能开销。流量当然不会通过网络。
发布于 2009-11-19 01:33:36
这可能对你不起作用,但我们在这里遇到了类似的问题。在我们的生产环境中,我们有2台服务器,每台都有1个DB。我们使用链接服务器在两台服务器之间来回切换。
现在,在我们的测试/开发环境中,我们使用了两个SQL服务器实例: MYSERVER\LIVEDB和MYSERVER\LOCALDB。这使我们能够像在生产中一样设置链接服务器。
就性能而言,我们没有注意到任何异常。
https://stackoverflow.com/questions/1757566
复制相似问题