关于 YMatrix
标准集群部署
数据写入
数据迁移
数据查询
运维监控
参考指南
工具指南
数据类型
存储引擎
执行引擎
流计算引擎
灾难恢复
系统配置参数
索引
扩展
SQL 参考
常见问题(FAQ)
ORCA 是 YMatrix 中的全新模块化查询优化器,代替了传统的 Planner 优化器,在 OLAP 部分查询场景性能上有了明显的进步。在 YMatrix 中 ORCA 优化器是默认关闭的想使用 ORCA 需要开启参数 optimizer。启用 ORCA 后,YMatrix 数据库会尽可能使用 ORCA 为查询生成执行计划。如果无法使用 ORCA,则仍使用 Postgres 查询优化器。
ORCA 的系统边界如下图所示,最下方为 ORCA 优化器,上方为数据库系统。
ORCA 接受数据库系统输入的查询语句( Query )和元数据( MataData,MD),并输出物理执行计划(Plan)。Query/MD/Plan 均为 DLX 格式。
ORCA 内部结构如下图,分为 Job 执行、Job 编排、Memo、OS 等部分

在 optimizer = on 时,YMatrix 数据库使用 ORCA 来替代传统查询规划器。服务器配置参数可以启用或者禁用 ORCA。
您可以使用 optimizer 参数在系统、数据库、会话或查询级别配置 ORCA 使用情况。 如果要更改默认行为,请参阅以下部分之一:
为 YMatrix 系统设置服务器配置参数 optimizer。
on:gpconfig -c optimizer -v on
mxstop -u
用 ALTER DATABASE 命令为单个 YMatrix 数据库设置服务器配置参数 optimizer。例如,为数据库 test_db 启用 ORCA。
ALTER DATABASE test_db SET OPTIMIZER = ON ;
可以使用 SET 命令为一个会话设置 optimizer 服务器配置参数。例如,在使用 psql 工具连接到 YMatrix 数据库之后,使用 SET 命令启用 ORCA:
set optimizer = on ;
要为特定查询设置参数,请在运行查询之前包含 SET 命令。
注意!
可点击 ORCA 优化器配置参数 查看更多配置参数使用方法。
当 ORCA 被启用(默认关闭)时,可以判断 YMatrix 数据库是在使用 ORCA 还是退回到传统查询优化器。可以检查查询的 EXPLAIN 查询计划来判断 YMatrix 数据库使用哪一种查询优化器来执行该查询:
optimizer = on 和 ORCA 的版本会被显示在查询计划的末尾。例如:Optimizer: ORCA
optimizer = on数据库退回到使用传统优化器生成该计划时。例如:Optimizer: Postgres-based planner
注意!
如果 YMatrix 数据库回退到传统查询优化器,优化器服务器配置参数将影响查询计划的生成。关于传统查询优化器的服务器参数,查看运算符控制参数
下列是 ORCA 被启用时,不支持的 SQL 查询特性: