Is it possible to monitor/detect/repair execution plan in case oracle optimizer changed it surprisin
It happened a few days ago, on 12cR2 db (12.2.0.1.220118 on Linux). Execution plan for specific query was changed (for worse) automatically by optimizer at about 4am). Application activity started about 7am. Problem has been noticed, diagnosed and solved eventually at 8:30. Tuning Advisor provided no recommendations so we solved it by forcibly removing all existing query plans - by resetting any query info. It caused optimizer chose the proper plan this time. Then it was fixed (hopefully for good) by sql profile and sql baseline. Statistics are up to date all the time, for main objects gathered everyday.
But in fact it had bad impact for application for over 1,5h, in the large chain of grocery stores. So next time it must be avoided at all cost. Next time can’t happen actually.