2010-03-31 53 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

万一有人遇到这个问题,我没有一个很好的解决方案。但是我最终不得不做的是将一些有限的重复数据放入目标数据库,以完全绕过渴望的假脱机。