2009-11-18 64 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。這使我們能夠像我們在生產中一樣建立鏈接服務器。

就表現而言;我們沒有注意到任何不尋常的事情。

相關問題