План объяснения SQL: что такое Materialise?

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

operator++()
operator++(int)

Это единственный способ, которым компилятор отличает эти два. Что касается возвращаемых значений Digit& и Digit; Они необходимы из-за того, что предполагается использовать ++ x и x ++.

37
задан Tony 16 July 2015 в 20:10
поделиться

2 ответа

Узел материализации означает, что вывод всего, что находится под ним в дереве (которое может быть сканированием, полным набором объединений или чем-то подобным), переносится в память перед верхним узлом выполняется. Обычно это делается, когда внешнему узлу нужен источник, который он может повторно сканировать по той или иной причине.

Итак, в вашем случае планировщик определяет, что результат сканирования одной из ваших таблиц умещается в памяти, и это до тех пор, пока не появится возможность выбрать операцию верхнего соединения, которая требует повторного сканирования, но при этом дешевле.

53
ответ дан 27 November 2019 в 04:44
поделиться

Это означает, что он не может использовать какой-либо индекс (или аналогичный метод), чтобы сделать соединение эффективным, поэтому в качестве последнего средства он материализует результат из одной из таблиц, чтобы иметь меньший набор для работы при соединении с другой таблицей.

7
ответ дан 27 November 2019 в 04:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: