我的 MS Sql Server 数据库中有 4 个视图,它们都非常快(不到 2 秒)并且返回的行数都少于 50 行。
但是,当我创建一个加入这 4 个视图(左外连接)的查询时,我得到一个需要将近一分钟才能完成的查询。
我认为查询优化器在这里做得不好,有什么办法可以加快速度。我很想将 4 个视图中的每一个复制到一个表中并将它们连接在一起,但这对我来说似乎是一种太多的解决方法。
(旁注:我不能在任何表上设置任何索引,因为视图来自不同的数据库,并且我不允许在那里更改任何内容,所以这不是一个选项)
编辑:我很抱歉,但我不认为发布 sql 查询会有所帮助。它们非常复杂,使用大约 50 个不同的表。我也无法发布执行计划,因为我没有足够的访问权限在某些数据库上生成执行计划。
我想我现在最好的解决方案是生成临时表来存储每个查询的结果。