次のクエリをTeradata用に最適化できますか?(Teradataバージョン) - すべてのレコードと、対応するすべてのレコードを別のテーブルに取得します。
私たちは、非固有キー
あるいは、言い換えれば上で、大きなテーブルBからその試合を小さなテーブルAからのすべてのレコードに加え、対応するすべてのレコードを必要とする:Aに一致していないBからのすべてを除くすべて
多分JOINの何か?または、非相関クエリであるSubselectはTeradataにも当てはまりますか?
SELECT a.nonunique
, a.colX
FROM small_tab a
UNION ALL
SELECT b.nonunique
, b.colY
FROM large_tab b
WHERE EXISTS (
SELECT 1
FROM small_tab a
WHERE a.nonuniqe = b.nonunique
);
ありがとうございました!
=========非相関サブクエリとthis MySQL questionでquanos回答に基づいたUPDATE ====
、以下しまうの文は、Teradataの中で速くもなりますか?
SELECT a.nonunique
, a.colX
FROM small_tab a
UNION ALL
SELECT b.nonunique
, b.colY
FROM large_tab b
WHERE b.nonunique IN
(
SELECT DISTINCT nonunique
FROM small_tab
GROUP BY nonunique
)
私は..だけ自宅でのOracleインスタンスを持つ、現在のTeradataに
本当に 'UNION'が必要ですか?明確な処理は膨大なオーバーヘッドであり、「UNION ALL」は高速になります。 – dnoeth
ありがとう、私はそれを監督した。それは私が最初に使用した別の選択から来ています。これは効率が悪いと思う(重複を返す結合を含む)。更新されました。 – Rusty75