************************ EXPLAIN ************************ *Synopsis* .. code-block:: sql EXPLAIN [GLOBAL] statement *Description* Show the logical or global execution plan of a statement. *Examples* Logical plan: .. code-block:: sql default> EXPLAIN SELECT l_orderkey, count(*) FROM lineitem GROUP BY l_orderkey; explain ------------------------------- GROUP_BY(1)(l_orderkey) => exprs: (count()) => target list: default.lineitem.l_orderkey (INT8), ?count (INT8) => out schema:{(2) default.lineitem.l_orderkey (INT8), ?count (INT8)} => in schema:{(1) default.lineitem.l_orderkey (INT8)} SCAN(0) on default.lineitem => target list: default.lineitem.l_orderkey (INT8) => out schema: {(1) default.lineitem.l_orderkey (INT8)} => in schema: {(16) default.lineitem.l_orderkey (INT8), default.lineitem.l_partkey (INT8), default.lineitem.l_suppkey (INT8), default.lineitem.l_linenumber (INT8), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_tax (FLOAT8), default.lineitem.l_returnflag (TEXT), default.lineitem.l_linestatus (TEXT), default.lineitem.l_shipdate (DATE), default.lineitem.l_commitdate (DATE), default.lineitem.l_receiptdate (DATE), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_comment (TEXT)} Global plan: .. code-block:: sql default> EXPLAIN GLOBAL SELECT l_orderkey, count(*) FROM lineitem GROUP BY l_orderkey; explain ------------------------------- ------------------------------------------------------------------------------- Execution Block Graph (TERMINAL - eb_0000000000000_0000_000003) ------------------------------------------------------------------------------- |-eb_0000000000000_0000_000003 |-eb_0000000000000_0000_000002 |-eb_0000000000000_0000_000001 ------------------------------------------------------------------------------- Order of Execution ------------------------------------------------------------------------------- 1: eb_0000000000000_0000_000001 2: eb_0000000000000_0000_000002 3: eb_0000000000000_0000_000003 ------------------------------------------------------------------------------- ======================================================= Block Id: eb_0000000000000_0000_000001 [LEAF] ======================================================= [Outgoing] [q_0000000000000_0000] 1 => 2 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT8), num=32) GROUP_BY(5)(l_orderkey) => exprs: (count()) => target list: default.lineitem.l_orderkey (INT8), ?count_1 (INT8) => out schema:{(2) default.lineitem.l_orderkey (INT8), ?count_1 (INT8)} => in schema:{(1) default.lineitem.l_orderkey (INT8)} SCAN(0) on default.lineitem => target list: default.lineitem.l_orderkey (INT8) => out schema: {(1) default.lineitem.l_orderkey (INT8)} => in schema: {(16) default.lineitem.l_orderkey (INT8), default.lineitem.l_partkey (INT8), default.lineitem.l_suppkey (INT8), default.lineitem.l_linenumber (INT8), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_tax (FLOAT8), default.lineitem.l_returnflag (TEXT), default.lineitem.l_linestatus (TEXT), default.lineitem.l_shipdate (DATE), default.lineitem.l_commitdate (DATE), default.lineitem.l_receiptdate (DATE), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_comment (TEXT)} ======================================================= Block Id: eb_0000000000000_0000_000002 [ROOT] ======================================================= [Incoming] [q_0000000000000_0000] 1 => 2 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT8), num=32) GROUP_BY(1)(l_orderkey) => exprs: (count(?count_1 (INT8))) => target list: default.lineitem.l_orderkey (INT8), ?count (INT8) => out schema:{(2) default.lineitem.l_orderkey (INT8), ?count (INT8)} => in schema:{(2) default.lineitem.l_orderkey (INT8), ?count_1 (INT8)} SCAN(6) on eb_0000000000000_0000_000001 => out schema: {(2) default.lineitem.l_orderkey (INT8), ?count_1 (INT8)} => in schema: {(2) default.lineitem.l_orderkey (INT8), ?count_1 (INT8)} ======================================================= Block Id: eb_0000000000000_0000_000003 [TERMINAL] =======================================================