Re: Vanishing table in

From: Mladen Gogala <>
Date: Thu, 2 Feb 2012 22:36:01 +0000 (UTC)
Message-ID: <jgf34h$5ma$>

On Thu, 02 Feb 2012 18:29:51 +0000, Jonathan Lewis wrote:

> I'm not sure you're interpreting push_subq correctly.

Well, Oracle documentation says that this hint will execute the query at the earliest possible moment. I must confess that I didn't distinguish between correlated and non-correlated queries, that is the reason why I was using push_subq. It seems that the application of that query is much more limited, usable only for the cases like the one you specified. There should be much more clearer explanation for push_subq, merge, push_pred and unnest. Here is what Oracle documentation (11R2) says about push_subq hint:

The PUSH_SUBQ hint instructs the optimizer to evaluate nonmerged subqueries at the earliest possible step in the execution plan. Generally, subqueries that are not merged are executed as the last step in the execution plan. If the subquery is relatively inexpensive and reduces the number of rows significantly, then evaluating the subquery earlier can improve performance.

This hint has no effect if the subquery is applied to a remote table or one that is joined using a merge join.

This doesn't mention parent-child queries and doesn't even require the subquery to be correlated. To tell the truth, yes, it did look like the precompute_subquery to me. Now that you have corrected me, I'll write a little test tonight.

Received on Thu Feb 02 2012 - 16:36:01 CST

Original text of this message