アドホッククエリのクエリプランはではありません キャッシュされ、プリペアドステートメント
の場合のみ 。また、PL / pgSQL関数は、プリペアドステートメントのようなすべてのSQLステートメントを内部で処理します。 (EXECUTE
を使用した動的SQLの注目すべき例外を除く 。)それぞれが現在のセッションの範囲であり、それを超えることはありません。
したがって、PL / pgSQL関数(SQL関数ではありません!)は、同じセッション内で高度なクエリを繰り返し実行するのに役立ちます。プリペアドステートメントと同じように。
クライアントソフトウェアは、デフォルトでプリペアドステートメントを使用している場合があります。または、"拡張クエリ"プロトコル 、同じ効果に。
関連:
を開始した、関連する回答pgsql-generalのスレッド あなたが言及しているのは:
プランキャッシング> マニュアルのPL/pgSQLの場合。