Teiid 查询优化/虚拟数据源 jasper

Teiid query optimization/ Virtual datasource jasper

我有这样的查询:

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 如何处理同一数据库上的多个连接。他们被推送到数据库了吗? table A 和 B 之间的连接顺序重要吗?在我的示例中,我使用了 A 和 B 之间的连接,然后是 B 和 B 之间的连接,然后是 A 和 A 之间的连接。我是否需要重新排列顺序或在数据库 A 和数据库 B 上创建 2 个临时 table?

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