KINGBASE 执行计划介绍
SQL 语句的执行过程:当客户端程序发出SQL 语句,数据库后端服务进程接收到 SQL 语句后,调用解析器 (parser) 进行语法分析和词法分析,生成一棵语法树。语法树被转交给分析器(analyzer), 进行语义分析,生成查询树。查询树被转交给查询重写器,基于规则进行查询重写,生成了一棵重写后的查询树。重写后的查询树转交给优化器(optimizer), 生成一个高度优化的执 行计划。执行计划转交给执行器(executor), 产生最终结果,由数据库后端服务进程将查询结果转交给客户端程序。
数据库对于每种操作要考虑两类代价:磁盘I/O代价和CPU代价 。
数据库的执行器采用流水线形式进行操作结果的传递,数据库总代价分成两部分:启动代价(startup cost)和运行代价(run cost)。
数据库的SQL语句执行计划是由完成该 SQL 语句的多个操作组成的操作树,每个操作是操作树中的一个节点,针对每一个操作节点,主要包括以下描述信息。
EXPLAIN 命令主要有两种执行方式。
示例:
生成执行计划;
system@test=# explain select count(*) from test_orders;
QUERY PLAN
-----------------------------------------------------------------------------------------------
Finalize Aggregate (cost=17572.55..17572.56 rows=1 width=8)
-> Gather (cost=17572.33..17572.54 rows=2 width=8)
Workers Planned: 2
-> Partial Aggregate (cost=16572.33..16572.34 rows=1 width=8)
-> Parallel Seq Scan on test_orders (cost=0.00..15530.67 rows=416667 width=0)
(5 rows)
实际执行并生成执行计划;
SQL> EXPLAIN ANALYZE select * from t1;
执行计划中常见参数介绍:
单表查询
多表连接查询
分组聚集查询
子查询
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作