我有兩個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:添加索引提示使得零差異。