ハードパーシングとは、計画キャッシュのヒット率が低いことを意味し、SQLリクエストごとに完全なSQLコンパイルプロセスを経るため、SQLリクエストの処理時間が増加することを指します。
V$OB_SQL_AUDITビューのGET_PLAN_TIMEフィールドを使用して、実行計画の取得にかかる時間が異常であるかどうかを判断できます。通常、この段階での処理時間は0.1ms未満ですが、異常なリクエストではこのフィールドの処理時間が100msを超える場合があります。
説明
V$OB_SQL_AUDITの詳細については、V$OB_SQL_AUDIT(Oracleモード)およびV$OB_SQL_AUDIT(MySQLモード)を参照してください。
例:
以下のシナリオで発生する可能性があります:
キャッシュ設定が小さすぎるため、計画が頻繁に破棄されます。
SQLパラメータの正規化に問題があり、同じ種類のSQLから多くの実行計画が生成されます。
以下の方法で解決できます:
計画キャッシュのサイズを拡大する
システム変数
ob_plan_cache_percentageは、計画キャッシュで使用可能なメモリのテナントメモリに対する割合を設定します。計画キャッシュで使用可能な最大メモリ(メモリ上限の絶対値)= テナントメモリ上限 *ob_plan_cache_percentage/100、デフォルト値は5です。