2016-10-04 19 views
0

私はこのようなクエリがある:Teiidクエリの最適化/仮想データソースの碧玉

Select A.table1.atr1, ... , B.table1.atr1 
from A.table1 
join B.table1 on (A.table1.atr1 = B.table1.atr2) 
join B.table2 on (B.table1.atr2 = B.table2.atr2) 
...(some similar joins) 
join A.table2 on (A.table1.atr1 = A.table2.atr2) 
where ... 

AとBは、JDBCデータソースです。私はteiidが同じデータベース上で複数の結合をどのように処理するのだろうかと思います。彼らはデータベースにプッシュダウンされていますか?テーブルAとテーブルBの間の結合順序は重要ですか?私の例では、私はAとBの間、次にBとBとの間、そしてAとAの間で結合を使用しています。順序を並べ替えるか、データベースAとデータベースBに2つの一時テーブルを作成する必要がありますか?

答えて

0

データベースが結合をサポートしている場合は、それらをプッシュダウンできます。クエリの計画中、Teiidオプティマイザはソースの機能をチェックし、Teiidエンジンでプッシュまたは処理する必要があると判断します。これに基づいて、クエリーを書き換えます。