SOFT PARSEとHARD PARSE
oracleのお話
SQLを実行するときにはまず始めに実行対象のSQLの解析(実行計画の取得)が行われる。
解析の際にライブラリ・キャッシュ上に同じSQLが存在する場合は、キャッシュ上のSQLの実行計画を利用してSQLを実行する。これをSOFT PARSE(ソフト・パース)という。
反対にライブラリ・キャッシュ上に存在しない場合は、
①文法チェック
②TABLEやカラムのチェック(セマンティクス・チェック)
③実行計画の取得
上記の処理をした後にSQLを実行する。これをHARD PARSE(ハード・パース)という。
要はSQLを色々チェック(解析)してから実行するのがHARD PARSEで、キャッシュからチェック済みのSQLとして実行するのがSOFT PARSEである。
実行したSQLが全てライブラリ・キャッシュに登録(共有)されるわけではなく、バインド変数などを利用したSQLが登録される。
HARD PARSEが多くなる(解析処理が多くなる)と負荷がかかり性能劣化の原因となるため、キャッシュに登録されるような文法のSQLを実行することを心掛けるべきである。
以上
この記事が気に入ったらサポートをしてみませんか?