Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 两个数据库中的数据,导致查询_Sql Server 2005_Performance - Fatal编程技术网

Sql server 2005 两个数据库中的数据,导致查询

Sql server 2005 两个数据库中的数据,导致查询,sql-server-2005,performance,Sql Server 2005,Performance,我在SQL2k5中有两个数据库:一个保存大量静态数据(SQL数据库1)(从未更新但经常插入),另一个保存与静态数据相关的关系数据(SQL数据库2)。它们之间的分离主要是因为公司的指导方针和业务需求:对于以下问题,假设将它们结合起来是不实际的 SQLDB2中有引用SQLDB1中PKs的地方;触发器控制引用完整性,因为跨数据库关系在SQL Server中很麻烦。但是,由于SQLDB1中有大量的数据,我对从引用SQLDB1中数据的SQLDB2中的Id连接的查询进行了大量的假脱机处理。(到目前为止,我想

我在SQL2k5中有两个数据库:一个保存大量静态数据(SQL数据库1)(从未更新但经常插入),另一个保存与静态数据相关的关系数据(SQL数据库2)。它们之间的分离主要是因为公司的指导方针和业务需求:对于以下问题,假设将它们结合起来是不实际的

SQLDB2中有引用SQLDB1中PKs的地方;触发器控制引用完整性,因为跨数据库关系在SQL Server中很麻烦。但是,由于SQLDB1中有大量的数据,我对从引用SQLDB1中数据的SQLDB2中的Id连接的查询进行了大量的假脱机处理。(到目前为止,我想举个例子会有所帮助:)

这个查询会产生一个占查询负载84%的即时假脱机;SQLDB1中的表有3500万行,因此它完全阻塞了这个查询。我无法在SQLDB1中的表上创建视图并将其用作我的FK/索引;它不希望我基于视图创建约束

有人知道我如何解决这个巨大的瓶颈吗?(除了把静态数据放在第一个db中之外:相信我,我一直在争论这个问题,直到我脸色发青都没有用。)

谢谢

瓦尔基里

编辑:也不能创建索引视图,因为不能将schemabinding放在引用视图所在数据库之外的表的视图上。该死


编辑2:添加索引提示没有任何区别。

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

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