Oracle 11g unpivot 非常慢 - 性能低下
Oracle 11g unpivot very slow - low performance
我的查询的 unpivot
查询性能很低,它运行很慢,需要大约 11 秒才能执行,而它所基于的 base
查询大约需要 60 毫秒才能执行。
base
查询很复杂,有几个连接,但 returns 只有几行。
Unpivot 在大约 7 个分组列上运行,并在 40 列左右进行 unpivot。
Explain query plan 没有详细说明,只说unpivot成本很高
可以尝试的一件事是对 base
查询使用 WITH
子句。
而不是
SELECT * from (SELECT my_data, ...) UNPIVOT (...)
尝试
WITH base as (select my_data, ...) select * from base UNPIVOT (...)
在我的例子中,它减少了 10 倍的查询时间。
我的查询的 unpivot
查询性能很低,它运行很慢,需要大约 11 秒才能执行,而它所基于的 base
查询大约需要 60 毫秒才能执行。
base
查询很复杂,有几个连接,但 returns 只有几行。
Unpivot 在大约 7 个分组列上运行,并在 40 列左右进行 unpivot。
Explain query plan 没有详细说明,只说unpivot成本很高
可以尝试的一件事是对 base
查询使用 WITH
子句。
而不是
SELECT * from (SELECT my_data, ...) UNPIVOT (...)
尝试
WITH base as (select my_data, ...) select * from base UNPIVOT (...)
在我的例子中,它减少了 10 倍的查询时间。