Nested Loop JOINは一般的に低速とみなされますが、これは実行されなければならない比較の量が多いためです。下の図では、両方のテーブルに5つの行があり、合計25の比較(5 x 5)になります。大きなテーブルでは、これは非常に多くの比較になる可能性があります。その結果、CPUとメモリを激しく使用することになります。

ワグナー、バート"MergeJoin内部の可視化とその影響の理解"データ with Bert Atomhttps://bertwagner.com/posts/visualizing-nested-loops-joins-and-understanding-their-implications/

Nested Loopはクロスジョインが指定されている場合に使用されます:


SELECT
    sod.salesorderid
    ,soh.salesorderid
FROM
    dwh.SalesOrderDetail sod
    CROSS JOIN pgsql_local_data.SalesOrderHeader soh
OPTION $ALLOW_CARTESIAN ALWAYS
;;


OPTION $ALLOW_CARTESIAN ALWAYS。デフォルトでは、ユーザが誤ってクロス結合を作成し、パフォーマンスに影響を与えることを防ぐために、クロス結合(カルテ結合とも呼ばれます)は禁止されています。