两个数据库中的数据,急切的假脱机导致查询

时间:2010-03-31 15:54:06

标签: sql-server-2005 performance

我在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 /索引;它不希望我根据视图创建约束。

任何人都知道如何解决这个巨大的瓶颈? (没有把静态数据放在第一个数据库中:相信我,我一直认为那个直到我脸色发蓝而无济于事。)

谢谢!

武神

编辑:也无法创建索引视图,因为您无法将模式绑定放在引用视图所在数据库之外的表的视图上。当它。

编辑2:在索引提示中添加零差异。

1 个答案:

答案 0 :(得分:0)

如果其他人遇到这个问题,我没有一个很好的解决方案。但我最终要做的是将一些有限的重复数据放入目标数据库,以便完全绕过急切的假脱机。