2010-03-31 52 views
1

我有兩個SQL2k5數據庫:一個包含大量的靜態數據(SQL數據庫1)(從未更新但頻繁插入)和一個持有關係數據(SQL數據庫2)與靜態數據相關。主要是因爲企業準則和業務要求而分開:假設將以下問題組合起來並不實際。數據在兩個數據庫中,渴望假脫機導致查詢

SQLDB2中有一些地方會引用SQLDB1中的PK;觸發器控制參照完整性,因爲跨數據庫關係在SQL Server中很麻煩。但是,由於SQLDB1中的數據量很大,我從SQLDB2中引用SQLDB1中的數據的Id中加入的查詢中收到了急切的假脫機。 ?(跟我到目前爲止也許一個例子有助於:)

SELECT t.Id, t.Name, t2.Company 
FROM SQLDB1.table t INNER JOIN SQLDB2.table t2 ON t.Id = t2.FKId 

此查詢結果的渴望閥芯這是查詢的負載的84%; SQLDB1中的表有35M行,所以它完全阻塞了這個查詢。我無法在SQLDB1的表上創建視圖並將其用作我的FK /索引;它不希望我根據視圖創建約束。

任何人有任何想法如何我可以解決這個巨大的瓶頸? (把靜態數據放在第一個分貝中:相信我,我認爲,直到我在面對藍色無濟於事。)

謝謝!

武神

編輯:也不能創建一個索引視圖,因爲你不能把SCHEMABINDING上引用其視圖所在的數據庫之外的表的視圖。該死的。

編輯2:添加索引提示使得零差異。

回答

0

萬一有人遇到這個問題,我沒有一個很好的解決方案。但是我最終不得不做的是將一些有限的重複數據放入目標數據庫,以完全繞過渴望的假脫機。