私のアプリケーションには、テーブルに多数の行がある場合に非常に高速に実行されるクエリがあります。しかし、行の数が中程度のサイズ(大小もありません)の場合、同じクエリは15倍も遅く実行されます。enable_nestloopをOFFに設定する際の落とし穴は何ですか
説明プランは、中間サイズのデータ・セットの照会が、その結合アルゴリズムのためにネストされたループを使用していることを示しています。大きなデータセットでは、ハッシュ結合が使用されます。
データベースレベル(postgresql.conf)またはセッション(SET enable_nestloop TO off
)のいずれかでネストループを使用しないようにクエリプランナーを奨励できます。
潜在的な落とし穴はset enable_nestloop to off
ですか?
その他の情報:Windowsで動作するPostgreSQL 8.2.6。