db2fopt - 指定查询优化器参数命令

db2fopt 命令指定供查询优化器使用的参数。 当设置物理资源比生产系统少的测试系统时,可以使用此命令。

例如,如果生产系统在 sortheap= 20000 的情况下运行,并且测试系统只能在 sortheap= 5000 的情况下运行,那么可以在测试系统上使用 db2foptopt_sortheap 优化器参数设置为 20000。 这将指示优化器在评估存取方案时使用 20000 作为排序堆值,而 sortheap 数据库配置参数设置为 5000。

Scope
此命令仅影响执行该命令的数据库分区。
Authorization
使用 get 选项查询参数: 无
更新 参数,需要下列其中一个权限:
  • SYSADM
  • SYSCTRL
  • SYSMAINT
Required connection

命令语法

Read syntax diagramSkip visual syntax diagramdb2foptDBnameupdateoptimizer-parametervalueget optimizer-parameter

命令参数

DBname
数据库的别名。
update optimizer-parameter value
使用此命令可更新优化器参数。
  • opt_buffpage
  • opt_sortheap
  • opt_locklist
  • opt_maxlocks
get optimizer-parameter
使用此命令可查询优化器参数值。
  • opt_buffpage
  • opt_sortheap
  • opt_locklist
  • opt_maxlocks

使用说明

此工具有时用于由异构数据库分区配置组成的分区数据库环境中。 在这种情况下,语句编译发生在协调程序数据库分区上,该数据库分区可以具有与执行查询处理的实例中的数据库分区的数据库配置设置不同的数据库配置设置。

如果优化器参数的值为 0,那么未指定任何优化器值。 语句编译将使用数据库配置中的值。

将优化器参数更新为值 0 将重置先前更新的值。

在更新操作上指定非数字值或负值会将该值设置为 0

要使更新生效,必须在数据库分区上终止所有连接,并且必须取消激活数据库分区 (如果先前已激活)。

优化器参数仅用于语句编译。 在分区数据库环境中,必须在协调程序数据库分区上设置这些值。

要确定要在测试系统上指定的实际值,可以使用 db2exfmt 工具从生产系统获取说明输出,然后查看 数据库上下文 部分。

示例

Example 1
查询 opt_sortheapopt_locklistopt_maxlocks的值。
db2fopt testdb get opt_sortheap opt_locklist opt_maxlocks
Example 2
设置多个参数的值。
例如,将从生产系统返回以下数据库上下文部分。
Database Context:
----------------
        Parallelism:            None
        CPU Speed:              1.456395e-07
        Comm Speed:             0
        Buffer Pool size:       89000
        Sort Heap size:         10000
        Database Heap size:     1200
        Lock List size:         8000
        Maximum Lock List:      10
        Average Applications:   1
        Locks Available:        93030
在测试系统上,可以使用 db2fopt 命令将 opt_buffpage 设置为 89000 , opt_sortheap 设置为 10000 , opt_locklist 设置为 8000 , opt_maxlocks 设置为 10。
db2fopt testdb update opt_buffpage 89000
                      opt_sortheap 10000
                      opt_locklist 8000 
                      opt_maxlocks 10