Oracle 参数 OPTIMIZER_INDEX_CACHING 官方解释,作用,如何配置最优化建议
本站中文解释
(OPTIMIZER_INDEX_CACHING)
OPTIMIZER_INDEX_CACHING是一个参数,用于控制Oracle优化器如何使用索引缓存。它的取值范围是0到100之间的整数,表示Oracle优化器占用的最大索引缓存值比例。
正确设置OPTIMIZER_INDEX_CACHING需要根据数据库性能及活动性来考虑,而最佳值也是不断变化的。常见的建议是让OPTIMIZER_INDEX_CACHING取值为80-90,这意味着Oracle优化器可以使用80%-90%的最大索引缓存。此外,如果需要更详细的优化,还可以根据实际情况,按索引类型使用不同的索引缓存设置。
官方英文解释
OPTIMIZER_INDEX_CACHING
lets you adjust the behavior of cost-based optimization to favor nested loops joins and IN-list iterators.
Property | Description |
---|---|
Parameter type |
Integer |
Default value |
|
Modifiable |
|
Modifiable in a PDB |
Yes |
Range of values |
0 to 100 |
Basic |
No |
The cost of executing an index using an IN-list iterator or of executing a nested loops join when an index is used to access the inner table depends on the caching of that index in the buffer cache. The amount of caching depends on factors that the optimizer cannot predict, such as the load on the system and the block access patterns of different users.
You can modify the optimizer’s assumptions about index caching for nested loops joins and IN-list iterators by setting this parameter to a value between 0 and 100 to indicate the percentage of the index blocks the optimizer should assume are in the cache. Setting this parameter to a higher value makes nested loops joins and IN-list iterators look less expensive to the optimizer. As a result, it will be more likely to pick nested loops joins over hash or sort-merge joins and to pick indexes using IN-list iterators over other indexes or full table scans. The default for this parameter is 0, which results in default optimizer behavior.
See Also:
Oracle Database SQL
Language Reference for additional information about this initialization parameter