Pull to refresh
1
0
Павел @lispad

TechLead

Send message

У вас указан странный пример запроса, который никак не соответствует заявленному в начале OLAP сценарию использования
select * from T1 inner join T2 on T1.a = T2.a
И неэффективный при большом размере T2 план его выполнения. Разработчик, в условиях возможности использовать дополнительную память, и больших размерах T2 вероятно реализовал бы hash join, что-то вроде

indexed := hashMapByColumn(T2, 'a')
for (row1 : T1)
    for (row2: indexed[row1.a])
        output(row1, row2)

Вероятно у вас просто неудачный пример. Было бы интересно узнать какие варинты выполнения join кроме nested loop умеет выполнять ваша система, и на основе каких критериев выбирается тот или иной вариант выполнения.
Также интересно было бы узнать сравнение скорости с другими решениями - dbms для olap (clickhouse, hp vertica, ...), серверами olap(Mondrian, ...). Если ваше решение оказывается быстрее, была бы интересна аналитика того на каких сценариях и за счёт каких факторов.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity