Teiid查询优化/虚拟数据源碧玉

问题描述:

我有这样的查询: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个临时表?

如果数据库支持连接,那么可以将它们推下。在查询计划期间,Teiid优化器检查源的能力并决定可以推送或需要在Teiid引擎中处理。基于它,它将重新编写查询。