2015-09-03 2 views
0

Запуск Apache Ignite 1.30, который использует H2 в качестве системы индексирования.Объяснение результатов объяснения базы данных H2

Я выполнил свой запрос через объяснение и получил.

{"result":"[[ 
SELECT\n 
    FIELD1 AS __C0\n 
    FROM \"cache\".TRX\n 

    /* \"cache\".\"FIELD2_idx\": FIELD2 = ?1 */\n 

    WHERE FIELD2 = ?1], [SELECT\n 
    __C0 AS FIELD1\n 
    FROM \"cache\".__Z0()\n 

    /* function */]]"} 

Хорошо, поэтому я знаю, что он использует поле2 в качестве индекса, но что второй выбирает?

+0

С помощью «второго выбора» вы имеете в виду «SELECT __C0 AS FIELD1 FROM» cache ».__ Z0()'? Это вызов функции (to __Z0), он не может использовать индекс. –

+0

Да, значит ли это, что ignite не может использовать индекс H2? – user432024

+0

Функциональные вызовы не могут иметь индекс. Итак, какой индекс вы хотите использовать? –

ответ

0

Первый SELECT - это план выполнения запроса, который выполняется на удаленных узлах, второй - для локального запроса, выполняемого во время шага уменьшения.

План выполнения удаленных запросов показывает, что индекс правильно используется, и запрос будет выполнен самым быстрым способом.

Поскольку в этом конкретном запросе нет агрегатов, шаг уменьшения тривиален - набор результатов из удаленных узлов просто объединяется в один. Таким образом, план выполнения фактически не показывает никакой полезной информации в этом случае.

Смежные вопросы