Oracle 参数 OPTIMIZER_USE_INVISIBLE_INDEXES 官方解释,作用,如何配置最优化建议

本站中文解释

OPTIMIZER_USE_INVISIBLE_INDEXES是Oracle数据库内置的参数,用于控制优化器对隐藏索引(invisible indexes)的使用。当设置该值为“true”时,优化器会在构建执行计划时考虑隐藏的索引,默认值为“false”,表示优化器不会使用隐藏的索引。

要正确设置该参数,可以通过以下语句实现:

ALTER SESSION SET OPTIMIZER_USE_INVISIBLE_INDEXES=TRUE;

在实际应用中,由于优化器不会使用隐藏索引,因此,对于对执行速度有较高要求的SQL语句,可以先将隐藏索引设置为可见,再设置OPTIMIZER_USE_INVISIBLE_INDEXES参数为TRUE,让优化器将隐藏索引考虑进去。此外,由于隐藏索引可以减少空间占用,但维护和修改隐藏索引的增量成本比保持可见的索引要高,因此需要根据实际情况,理性选择隐藏还是可见的索引来最大化性能。

官方英文解释

OPTIMIZER_USE_INVISIBLE_INDEXES enables or disables the use of invisible indexes.

Property Description

Parameter type

Boolean

Default value

false

Modifiable

ALTER SESSION, ALTER SYSTEM

Modifiable in a PDB

Yes

Range of values

true | false

Basic

No

Values

  • true

    Invisible indexes are treated as visible (normal) indexes.

  • false

    Invisible indexes will not be considered by the optimizer but will still be maintained by DML operations.


数据运维技术 » Oracle 参数 OPTIMIZER_USE_INVISIBLE_INDEXES 官方解释,作用,如何配置最优化建议