これは合理的な機能です。 。動的クエリの性質は、呼び出しごとに構造が変わることです。
同じクエリを繰り返し(オプションで異なるパラメータを使用して)呼び出す場合は、プリペアドステートメントを使用します :
または、plpgsql関数内でプレーン(非動的)SQLコードを使用すると、それらもプリペアドステートメントのように扱われます。
あなたの場合 、PREPARE
を実行するのが最適な場合があります 動的にクエリします。ここでも非常によく似たケースがありました:
また、非常に クエリが計画に1.4秒、実行にわずか0.1秒かかることは珍しいことです。調べる価値があるかもしれません。最適化する方法があるかもしれません。 join_collapse_limit
と同様 :
関連: