更新时间:2025-03-13 GMT+08:00
Data Node Scan
算子说明
当GUC参数enable_fast_query_shpping的值设置为on时,优化器会尝试语句下推,将查询语句从CN发送到DN进行执行,然后将执行结果返回给DN。
典型场景
可以下推的查询语句
示例
可以下推的查询
--数据准备。 gaussdb=# SET enable_fast_query_shipping=on; gaussdb=# DROP TABLE IF EXISTS t1; gaussdb=# CREATE TABLE t1 (id int, number int, grade int); --执行结果。 gaussdb=# EXPLAIN SELECT * FROM t1 where id > 1; QUERY PLAN -------------------------------------------------- Data Node Scan (cost=0.00..0.00 rows=0 width=0) Node/s: All datanodes (2 rows)
因为实际计划在DN上生成,若需要查看DN上的执行计划可以设置参数max_datanode_for_plan观察DN上的计划。
--打开参数 gaussdb=# SET max_datanode_for_plan = 1; --执行结果 gaussdb=# EXPLAIN SELECT * FROM t1 where id > 1; QUERY PLAN -------------------------------------------------------------------- Data Node Scan (cost=0.00..0.00 rows=0 width=0) Node/s: All datanodes Remote SQL: SELECT id, "number", grade FROM public.t1 WHERE id > 1 Datanode Name: datanode1 Seq Scan on t1 (cost=0.00..34.31 rows=648 width=12) Filter: (id > 1) (8 rows) --删除。 gaussdb=# DROP TABLE IF EXISTS t1;
信息名称 |
含义 |
---|---|
Data Node Scan |
算子的名称。 |
Node/s: All datanodes |
表示会下发到所有DN |
父主题: 分布式运算符