0
我正在優化視圖的性能,收集2個鏈接服務器對象上的數據。SQL Server鏈接服務器性能似是而非的解決方案?
所以看法是服務器A上 視圖選擇從服務器B和C.
當我打開我注意到這種觀點是一團糟查詢多次相同的表反覆使用腳本數據子子子子選擇...
爲了簡單起見,我將不會發布查詢的實際代碼(700+線),但我會爲你理解一個簡單的查詢:
SELECT *
FROM [ServerA].myDB.dbo.tableA a
INNER JOIN [ServerA].myDB.dbo.tableB b ON a.field = b.field
LEFT JOIN (SELECT SUM(field) AS mysum
FROM [ServerA].myDB.dbo.tableB
WHERE field IN (SELECT MAX(value)
FROM [ServerA].myDB.dbo.tableA
WHERE anotherField IS NOT NULL)
) tbl ON tbl.mysum < b.anotherField
我知道這個查詢不是mak任何意義..這只是爲了說明我的觀點。
在服務器A的myDB中使用SELECT * FROM ServerA.myDB.myLocalView查詢表並從服務器B創建視圖會更高效嗎?
CREATE VIEW myLocalView
AS
SELECT *
FROM dbo.tableA a
INNER JOIN dbo.tableB b ON a.field = b.field
LEFT JOIN (SELECT SUM(field) AS mysum
FROM dbo.tableB
WHERE field IN (SELECT MAX(value)
FROM dbo.tableA
WHERE anotherField IS NOT NULL)
) tbl ON tbl.mysum < b.anotherField
我在tsql中看不到'[ServerB]'或'[ServerC]'。我錯過了什麼嗎? – DMason