FIRST_ROWS 和 ALL_ROWS 选项

FIRST_ROWS 与 ALL_ROWS 关键字选项标识两个不同的查询优化目标:

Inline 优化器伪指令

不选择这些 SET OPTIMIZATION 语句选项中的一种,您可以改为为单个查询指定优化-目标伪指令作为紧跟在开启该查询或子查询的 SELECT 关键字之后的注解。对于 DELETE、SELECT 或 UPDATE 语句中的查询,要获取更多关于 inline 优化器伪指令的语法和选项的信息,请参阅 优化程序伪指令。

外部的优化器伪指令

除了 SET OPTIMIZATION 语句可为当前会话中的查询指定的查询优化器伪指令,或可跟在 SELECT 关键字之后的 inline 优化器伪指令之外,数据库服务器还支持通过查询优化器影响执行路径的选择的第三种格式。

在 sysdirectives 系统目录表中,DBA 或用户 gbasedbt 可执行 SAVE EXTERNAL DIRECTIVES 语句来注册外部的优化器伪指令,也称为外部的伪指令。如果已启用了对外部伪指令的支持,则 GBase 8s 数据库服务器自动地将这些伪指令应用到与指定的 SELECT 语句相匹配的查询。SAVE EXTERNAL DIRECTIVES 语句的 ACTIVE、INACTIVE 或 TEST ONLY 关键字选项分别启用、禁用或限制外部的伪指令的作用域。

在 ONCONFIG 文件中设置 EXT_DIRECTIVES 配置参数为 1 或 2,且设置 IFX_EXTDIRECTIVES 客户端侧环境变量为 1,启用对外部的伪指令的支持。

独立于 EXT_DIRECTIVES 配置参数或 IFX_EXTDIRECTIVES 客户端侧设置,为会话环境设置 SET ENVIRONMENT EXTDIRECTIVES 为 '1'、on 或 ON,在当前的用户会话中启用外部的优化器伪指令,如果在 sysdirectives 表中注册任何活动的外部伪指令的话。

SET EXPLAIN 输出文件显示外部的伪指令对查询是否生效。

要获取更多关于外部的优化器伪指令的信息,请参阅 为会话启用或禁用外部伪指令。