How may I force ignoring use of CBO in a query execution in Oracle11g
Posted on 2013-01-25
I'm hitting an ORA-600 when use a particular query. Only this one is causing the issue.
That particular ORA-600 is not reported on metalink (as I only have read only privileges now and can't create an SR) and I found a workaround to it.
ORA-00600: código de error interno, argumentos: [qerixGetKey1], , , , , , , , , , , 
When the query is executed using /*+RULE */ hint, the ora-600 is not raised.
When I delete table statistics, (another way to force RBO being used), the ora-600 is not raised.
Also, the query uses a EXISTS clause, and when I change it to IN, the ora-600 is also not raised.
The point is that I CAN'T CHANGE THE QUERY as belongs to a compiled module, or even put a hint on it.
As Oracle11g has deprecated STORED OUTLINES, and sql profile/sql baseline don't seem to work (they raise the ora-600 because, I guess, use of CBO), I need to find a way to make this particular query being executed in RULE optimizing (RBO) to avoid the issue.
NOTE: delete statistics for that particular tables causes the application performance decreases drastically to unacceptable time responses.