繁体   English   中英

oracle查询中的“ WITH”子句优化

[英]“WITH” clause optimization in oracle query

当我在查询中使用许多WITH子句时,它执行的时间更长,而不是没有它。 查询结构如下:

with t1 as (select some_fields from table1 inner join table2),
     t2 as (select some_fields from t1 inner join table3),
     t3 as (select some_fields from t2 inner join table4)
select * from t3

应该使用哪种方法来优化类似的查询? 在我的情况下,每个子查询返回大约1000万行。

考虑到所有的保密性,我建议您对两个查询都查看EXPLAIN PLAN 在我看来,WITH只是语法糖,它使您可以在子查询中重用某些sql。 但总的来说,它并不总是导致最有效的计划。

是的,10000万总是很慢。

我确认WITH CLAUSE不会提高Oracle数据库的性能。 它仅允许使用查询名称,而不是重复整个查询文本。

另外,它允许定义PL / SQL函数,以便随后在查询中使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM