Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

【後で調べる】Oracle SGA の共有プール上のデータを消去する

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!
ALTER SYSTEM FLUSH SHARED_POOL;

ALTER SYSTEM FLUSH – オラクル・Oracleをマスターするための基本と仕組み

SQL の解析情報が消去されるため後続の SQL がすべてハード解析される。局所的に負荷のピークが発生する。
またシーケンスの情報も共有プール上にキャッシュされているためシーケンスのメモリキャッシュ分が欠番となる。

シーケンスのデフォルトキャッシュは 20 となってるので FLUSH すると 21 から採番される。

SQL 文単位で共有プールのフラッシュを行う方法について | 株式会社NTTデータ先端技術

対策の1つとして alter system flush shared_pool; コマンドで共有プール全体をフラッシュする方法がありますが、この方法ですと他の SQL 文の子カーソル (実行計画)までフラッシュされてしまいパフォーマンスへの影響が危惧されます。
Oracle Database 10.2.0.4 以降であれば特定の SQL 文のみ共有プールからフラッシュすることができます

Oracle_メモリのFlushやってみた | sier-dbaのブログ

◇注意事項
メモリ状のデータが消えるためdisk読込が走りSQLが遅くなります
またStatsPackやAWRのデータがおかしくなります
※再起動と同様のイメージとなる

タイトルとURLをコピーしました