ALTER SYSTEM FLUSH SHARED_POOL

共有プールをクリアする。

ALTER SYSTEM FLUSH SHARED_POOL;


Oracle10gからの機能。インスタンスを再起動することなく、キャッシュをクリアできる。
Oracle9iにはこの機能がないのでキャッシュをクリアしたい場合にはインスタンスの再起動が必要。
なお、使用するにはsysdbaでログインしないといけない。



共有プールにはライブラリキャッシュとデータディクショナリキャッシュが格納されている。
ライブラリキャッシュにはSQLの解析・実行計画や直前に実行したSQL等、
データディクショナリキャッシュには最近実行したSQLの表定義情報、権限が格納されている。



実行することにより以下の効果がある
・共有プールのメモリの断片化の解消
・キャッシュの内容をクリア(パフォーマンス測定時等)



なお、以下の点に注意
・実行中のSQLの結果が正常に完了しないことがある。
・シーケンスが欠番になることがある。(キャッシュしている分がクリアされるので)




なお、データベースバッファキャッシュ(頻繁にアクセスされるブロックのキャッシュ)を
クリアするのは以下の命令で行う。

ALTER SYSTEM FLUSH BUFFER_CACHE;