Стоимость в 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 в дополнение к фактической статистике времени выполнения.