我正在优化一个涉及UNION ALL
两个查询的查询。两个查询都经过优化,分别运行不到一秒。但是,当我执行两者的联合时,计算所有内容大约需要 30 秒。
我不会用特定的查询来打扰你,因为它们会随着它们得到优化,所以让我们打电话给Optimized_Query_1
它们 Optimized_Query_2
Optimized_Query_1 的行数大约为 100K
Optimized_Query_2 的行数大约为 200K
SELECT * FROM (
Optimized_Query_1
UNION ALL
Optimized_Query_2
) U
ORDER BY START_TIME ASC
我确实要求结果是有序的,但我发现无论最后是否有 ORDER BY,查询都会花费尽可能多的时间,所以应该没有什么区别。
显然 UNION ALL 在内存中创建了一个临时表,然后从中给出最终结果,有没有办法解决这个问题?
谢谢