2017-12-15 6 views
0

SQL 1:間で異なる何これらの2つのSQL

select p.aaa, t.bbb 
FROM fdm.xxx p 
JOIN gdm.yyy t 
ON  p.id = t.id 
where p.dp='CUR'; 

SQL 2:

select p.aaa, t.bbb 
FROM (select * from fdm.xxx p where p.dp='CUR') p 
JOIN gdm.yyy t 
ON  p.id = t.id ; 

テーブルxxxはパーティションテーブルで、列のDPで仕切ら。 私たちのSQL標準はSQL2のようなSQLを書くことを提案していますが、この2つのSQLを説明すると、SQL1はより最適化されているようです。 これら2つのSQLの違いは何ですか? SQL2はより良いパフォーマンスを備えていますか?

+0

説明プランを追加できますか? –

答えて

0

機能的には、まったく同じです。

ほとんどすべてのデータベースで、同じ実行計画があります。例外は、サブクエリが自動的にマテリアライズされるデータベース(MySQLなど)です。

ハイブは同じことを実行すると思います。

関連する問題