Статистики операторов в командах EXPLAIN#
В процессе планирования запроса CedrusData вычисляет приблизительные статистики операторов для выбора оптимального плана выполнения. Статистики операций сканирования таблиц предоставляют коннекторы. Расчет статистик промежуточных операторов происходит с помощью различных эвристических формул.
Рассчитанные статистики можно посмотреть с помощью команд EXPLAIN и EXPLAIN ANALYZE. Статистики будут отображены в формате
{rows: XX (XX), cpu: XX, memory: XX, network: XX}
. Значение rows
отображает ожидаемое количество записей, которые будут возвращены
оператором во время выполнения. Значения cpu
, memory
и network
отображают оценочное потребление ресурсов 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