Dynamic SQL statements can remain in the dynamic statement cache for a long period of time. When the statement gets refreshed, its access path could change dramatically. This article shows one way of limiting the impact of such an access path shift.
SQL tuning is not just looking at statements and their EXPLAIN plans, but it’s also about verifying whether or not a tuning change actually improves performance. Remember that SQL tuning is about saving elapsed time and/or CPU resources, and there is only one way to really do that: benchmarking!