OPTCOMPIND 配置参数

使用 OPTCOMPIND 来指定信息,帮助优化器选择一个对您的应用适当的查询计划。

提示: 您可认为此变量名出自“OPTimizer COMPare (the cost of using) INDexes (with other methods)。”
onconfig.std 值
OPTCOMPIND 2
0 = 当表的每一排序的对存在适当的索引时,用户器选择索引扫描(嵌套循环联接),不计成本,不选择表扫描(散列联接)。

1 = 如果隔离级别不是 Repeatable Read,则优化器根据成本来确定执行路径。否则,优化器选择索引扫描(效果与值 0 相同)。此设置是优化性能的推荐设置。

2 = 优化器根据成本来确定任何隔离级别的执行路径。索引扫描不优先于表扫描;优化器纯粹地根据成本做决定。如果未设置变量,则该值是缺省值。

生效
编辑 onconfig 文件并重启数据库服务器之后。
当您通过运行 onmode -wf 命令在 onconfig 文件中动态地重置该值时。
当您通过运行 onmode -wm 命令重置内存中的该值时。

用法

由于散列联接的本质,一个隔离模式设置为 Repeatable Read 的应用可能临时地锁定表中的所有记录,这些表参与表的每一排序集的联接(即使那些记录不符合联接条件)。这种情况导致联接中发生较高的争用。相反地,嵌套循环联接锁定较少记录,但当数据库服务器检索大量行时性能较差。因此,两种联接方式都各有利弊。客户端应用也可影响优化器对联接方式的选择。