Teradataは、Primary Index(PI)を結合カラムにしたときに結合が最速になる、とマニュアルに書いてある。 以下はこの性質を使ってパフォーマンス改善した事例。 夜間バッチの時間短縮のため、時間のかかっているジョブをチェックしてみると、こんな結合条件のSQLが見つかった。 insert into ... select ... from t1 /* (col1, col2) が Primary Index */ left outer join t2 on t1.col1 = t2.col1 and substr(t.col2, 1, 4) = t2.col2 and substr(t.col2, 5, 4) = t2.col3 Primary Index の一部であるcol2をsubstr()で分解しているため、PIを使ったmerge joinができず、t1, t2ともに再配置