I have a (rather complicated) 200+ lines SELECT query initiated by a billing application that performs well. When the application executes THE SAME query with an FOR UPDATE OF .. block added at the end, then the optimizer changes the execution plan dramatically and the performance becomes poor.
Actually the problem is located to a specific area where the optimizer abandons the "VIEW PUSHED PREDICATE" approach leading to poor performance. I tried to enforce the "PUSHED PREDICATE" approach using the PUSH_PRED hint without any luck, most-likely due to the complexity of the query (having subqueries in all SELECT , FROM and WHERE blocks) Apart from re-writing the query from scratch to reach an acceptable performance and then applying an SQL-profile for the optimizer, and then is there any quick hint about how I can overcome the situation. Have you experienced a similar issue ?
Thanks and Regards Dimitris G