Оптимизация запросов Teiid / Виртуальный источник данных 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 обрабатывает несколько соединений в одной базе данных. Они отправлены в базу данных? Важен ли порядок соединения между таблицами A и B? В моем примере я использую соединение между A и B, затем между B и B, а затем между A и A. Нужно ли мне изменить порядок или создать 2 временные таблицы в базе данных A и базе данных B?

1 ответ

Решение

Если база данных поддерживает объединения, да, их можно сдвинуть вниз. Во время планирования запроса оптимизатор Teiid проверяет возможности источника и решает, что его можно отправить или нужно обработать в движке Teiid. Исходя из этого, он перепишет запрос.

Другие вопросы по тегам