影响优化器的相关因素
1. Initialization parameters
|
CURSOR_SHARING |
共享游标 |
|
|
DB_FILE_MULTIBLOCK_READ_COUNT |
影响Oracle在执行全表扫描时一次读取的block的数量. |
|
|
OPTIMIZER_ADAPTIVE_REPORTING_ONLY |
|
12c新特性 |
|
OPTIMIZER_MODE |
优化器模式 |
|
|
OPTIMIZER_INDEX_CACHING |
影响join三种方式的选择hash join/ nested loops joins/sort-merge joins |
|
|
OPTIMIZER_INDEX_COST_ADJ |
这个数反映执行多块IO(全表扫描)的成本与执行单个IO(索引读取)的成本比。默认为100,则多块IO与单块IO成本相同 |
|
|
OPTIMIZER_INMEMORY_AWARE |
in-memory optimizer features |
12c新特性 |
|
OPTIMIZER_USE_INVISIBLE_INDEXES |
是否使用不可见索引 |
11g新特性 |
|
RESULT_CACHE_MODE |
什么时候缓存执行结果 |
11g新特性 |
|
RESULT_CACHE_MAX_SIZE |
Result Cache最大值 |
11g新特性 |
|
RESULT_CACHE_MAX_RESULT |
单个执行结果占用RESULT_CACHE的比例 |
11g新特性 |
|
RESULT_CACHE_REMOTE_EXPIRATION |
指定使用远程对象的结果允许保持有效的分钟数 |
11g新特性 |
|
STAR_TRANSFORMATION_ENABLED |
|
Enables the optimizer to cost a star transformation for star queries (if true). The star transformation combines the bitmap indexes on the various fact table columns |
2. Hints
3. DBMS_STATS
更新和管理统计信息
4. SQL profiles
包含辅助统计信息的数据库对象,一个sql profile 是一系列的对象统计信息表或者索引,帮助优化器找到最优结果
5. SQL plan management and stored outlines
SQL plan management 自动管理执行计划,始终使用被验证过(性能更优)的执行计划,是一种预防机制,
SPM参考 http://blog.itpub.net/15747463/viewspace-1224756/
Outline参考 http://blog.itpub.net/15747463/viewspace-1221950/