ORA-4031は共有プールの断片化が原因の可能性あり


過去に私が関わったシステムで共有プールの割当失敗(ORA-4031)が発生したことがあります。原因は共有プールの断片化でした。このときデータベースサーバは3カ月程度、起動し続けており共有プールの断片化が進んでいました。

その場の対処としてはサーバを強制終了させ、再起動させました。可能であれば
alter system flush shared_pool;

を実行して共有プールの解放を行ってください。※通常、共有プールの解放はオンライン中に実行することは推奨されていません。この件から定期的に再起動する意味を感じました。

最後に

最後までお読みいただきありがとうございます。

SQLのチューニングについては、「SELECT文のSQLチューニング方法まとめ」で詳しく解説していますので、ぜひ参考にしてください。