是否允许自动生成弹射式执行计划(auto_use_eje)
📄字数 992
👁️阅读量 加载中...
引入版本
v11.0.0
功能描述
是否允许自动生成弹射式并行执行计划。
参数属性
| 属性 | 属性值 |
|---|---|
| 参数类型 | BOOLEAN |
| 默认值 | FALSE |
| 取值范围 | TRUE,FALSE |
| 影响范围 | 系统级 |
| 修改方式 | 在线修改,立即生效 |
使用场景说明
- auto_use_eje 控制系统为查询规划执行计划的行为。
| auto_use_eje | 作用及影响 |
|---|---|
| true | 系统会自行判断是否使用并行方式执行(除开个别不符合并行执行场景外的其它大多数场景,系统将根据路径的扫描代价 与 auto_eje_cast 来判断是否使用并行执行),对于符合并行执行的查询,系统将采用该参数值作为并行执 行的并行度。 |
| false | 默认不使用并行,除非 SQL 中显式指定PARALLEL 属性。 |
- 不符合并行执行的场景主要有:
| 场景 |
|---|
| auto_eje_cast = -1(系统禁用并行执行) |
| use_index_order = true(查询中 ORDER BY 排序使用索引序) |
| 查询中包含 WITH 语句 |
| 查询中访问的目标表为文件表 |
| 查询中包含过程函数调用节点 |
| 查询中包含只能在本地计算的部分聚合函数 GROUP_CONCAT、LISTAGG |
| 查询中包含只能在本地计算的部分系统函数 LAST_INSERT_ID、SETSEED、RANDOM、RANDOM_NORMAL、CHECK_AUTH、IS_ROLE_MEMBER、SYS_USERID、 CURRENT_USERID、CURRENT_SCHEMAID、CURRENT_SCHEMA、CURRENT_USER、USER、SYSTEM_USER、SESSION_USER、 CURRENT_DB、CURRENT_DATABASE、DATABASE、CURRENT_DB_ID、SQLCODE、SQLERRM、CURRENT_IP、DBTS、 IS_SYS_DBA、USERENV、CURRENT_NODEID、MAX_NODE_NUM、GET_INSTALL_PATH、GET_WORK_PATH、GET_TYPE_SPACE、 SYS_CONTEXT |
| 存在依赖于上层的子查询表达式 |
示例
- 在线修改 auto_use_eje
sql
SQL> set auto_use_eje to false;
Execute successful.
Use time:3 ms.- 在线查看 auto_use_eje
sql
SQL> show auto_use_eje;
+--------------+
| AUTO_USE_EJE |
+--------------+
| F |
+--------------+
(1 row)
Use time:0 ms.