Стоимость в EXPLAIN#

Во время планирования вычисляется стоимость, связанная с каждым узлом плана, на основе статистики таблиц для таблиц в запросе. Эта вычисленная стоимость выводится как часть результата оператора EXPLAIN.

Информация о стоимости отображается в дереве плана в формате {rows: XX (XX), cpu: XX, memory: XX, network: XX}. rows означает ожидаемое количество строк, возвращаемых каждым узлом плана во время выполнения. Значение в скобках после количества строк означает ожидаемый размер данных, выводимых каждым узлом плана, в байтах. Остальные параметры показывают оценочный объем CPU, памяти и сети, используемый при выполнении узла плана. Эти значения не представляют какую-либо фактическую единицу измерения, а являются числами, которые используются для сравнения относительной стоимости между узлами плана, позволяя оптимизатору выбрать лучший план выполнения запроса. Если какое-либо значение неизвестно, выводится ?.

Например:

EXPLAIN SELECT comment FROM tpch.sf1.nation WHERE nationkey > 3;
- Output[comment] => [[comment]]
        Estimates: {rows: 22 (1.69kB), cpu: 6148.25, memory: 0.00, network: 1734.25}
    - RemoteExchange[GATHER] => [[comment]]
            Estimates: {rows: 22 (1.69kB), cpu: 6148.25, memory: 0.00, network: 1734.25}
        - ScanFilterProject[table = tpch:nation:sf1.0, filterPredicate = ("nationkey" > BIGINT '3')] => [[comment]]
                Estimates: {rows: 25 (1.94kB), cpu: 2207.00, memory: 0.00, network: 0.00}/{rows: 22 (1.69kB), cpu: 4414.00, memory: 0.00, network: 0.00}/{rows: 22 (1.69kB), cpu: 6148.25, memory: 0.00, network: 0.00}
                nationkey := tpch:nationkey
                comment := tpch:comment

Обычно для каждого узла плана выводится только одна стоимость. Однако, когда оператор Scan объединен с оператором Filter и/или Project, тогда выводится несколько структур стоимости, каждая из которых соответствует отдельной логической части объединенного оператора. Например, для оператора ScanFilterProject выводятся три структуры стоимости, соответствующие частям Scan, Filter и Project этого оператора, в таком порядке.

Оценочная стоимость также выводится в EXPLAIN ANALYZE в дополнение к фактической статистике времени выполнения.