Heute früh habe ich eine Frage beantwortet, bei der jemand als mögliche Lösung die Idee vorgeschlagen hat, den Shared Pool zu leeren, um ein Problem mit einer SQL-Anweisung zu lösen. Das halte ich für einen schlechten Rat. Wie ich in meiner Antwort sagte, warum die Leistung aller Endbenutzer abbauen, um das Problem eines Typen zu lösen? Meine Antwort war, dass wir den Cursor leeren sollten, wenn wir diese SQL-Anweisung aus dem Shared Pool entfernen müssten. Diese Fähigkeit gibt es seit Oracle 10g. Und ein Mitarbeiter von Oracle hat die Details hier gebloggt:
https://blogs.oracle.com/mandalika/entry/oracle_rdbms_flushing_a_single
Die Funktion ist in Oracle 11g vorhanden. Ich nehme an, dass dies auch noch in 12c verfügbar ist. Ich habe es nicht überprüft. Aber ich frage mich, ob es in Oracle 12c mit den neuen Funktionen des adaptiven Optimierers benötigt wird?