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
-
trueInvisible indexes are treated as visible (normal) indexes.
-
falseInvisible indexes will not be considered by the optimizer but will still be maintained by DML operations.