SQL Server - 加入4个快速查询给我一个慢查询

Pre*_*eli 2 sql sql-server performance sql-server-2008

我的MS Sql Server数据库中有4个视图,这些视图都非常快(少于2秒)并返回少于50行.

但是,当我创建一个查询,我加入这4个视图(左外连接)时,我得到一个几乎一分钟完成的查询.

我认为查询优化器在这里做得不好,有没有办法加快速度.我很想将4个视图中的每个视图复制到一个表中并将它们连接在一起,但这似乎对我来说太过于一种解决方法.

(旁注:我无法在任何表上设置任何索引,因为视图来自不同的数据库,我不允许在那里更改任何内容,所以这不是一个选项)

编辑:对不起,但我不认为发布SQL查询会有所帮助.它们非常复杂,使用了大约50个不同的桌子.我无法发布执行计划,因为我没有访问权限来生成某些数据库的执行计划.

我想我现在最好的解决方案是生成临时表来存储每个查询的结果.

And*_*oni 5

如果您无法触摸索引,为了加快速度,您可以将4个查询的结果放在4个临时表中,然后加入它们.

您可以在存储过程中执行此操作.