优化器伪指令
优化器伪指令
是指示查询优化器如何执行查询的注释。您可以使用优化器伪指令来提高查询性能。
优化器伪指令是什么
优化器伪指令是注释格式的规范,它们向查询优化器提供有关如何执行查询的信息。
使用优化器伪指令的原因
在大多数情况下,优化器选择最快的查询计划。 由于查询较为复杂或者因为查询没有足够的数据特性相关信息而导致优化器没有选择最佳的查询计划来执行查询时,那么可以使用优化器伪指令。查询计划不佳将导致性能不佳。
使用伪指令的准备工作
在大多数情况下,优化器选择最快的查询计划。 但是,可以执行步骤来协助优化器以及为使用伪指令做准备。
使用伪指令的准则
伪指令的准则包括频繁分析查询的效率和使用负伪指令。
SQL 语句中支持的优化器伪指令的类型
SQL 语句中的伪指令嵌入查询中。 这些伪指令包括访问方法伪指令、连接顺序伪指令、连接计划伪指令和优化目标伪指令。
优化器伪指令的配置参数和环境变量
您可以使用 DIRECTIVES 配置参数来打开或关闭数据库服务器遇到的所有伪指令,可以使用
IFX_DIRECTIVES
环境变量来覆盖 DIRECTIVES 配置参数的设置。
优化器伪指令和 SPL 例程
对于在
SPL
例程中的查询,伪指令操作方式有所不同,这是因为在
SPL
例程中 SELECT 语句不一定要在数据库服务器对它执行之前立刻进行优化。
强制重新优化以避免索引和先前预编译语句的问题
如果启用了 AUTO_REPREPARE 配置参数和 IFX_AUTO_REPREPARE 会话环境变量,那么在 DDL 语句修改了引用表的模式之后,
GBase 8s
会自动重新编译预编译语句和 SPL 例程。如果禁用 AUTO_REPREPARE 配置参数或 IFX_AUTO_REPREPARE 会话环境变量,可以执行步骤以防止错误。
外部优化器伪指令
如果您是用户
gbasedbt
,那么您可以创建、保存和删除外部伪指令。