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 |
|
Modifiable |
|
Modifiable in a PDB |
Yes |
Range of values |
|
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.