Oracle数据库中有关CBO优化的三个问题
1.如何使用基于成本的优化器来优化查询操作?
Oracle提供了基于成本的优化器和基于规则的优化器,简称CBO和RBO,用于确定查询操作的执行计划。基于成本的优化器将计算各种执行计划的成本,然后选择成本最低的执行计划。您可以选择以下列方式使用CBO:
1.在INIT中设置参数optimizer _ mode = choose。ORA文件;2 .
。在会话级别设置OPTIMIZER_GOAL=FIRST_ROWS或ALL_ROWS。
3.在查询语句中使用提示,包括CHOOSE、ALL_ROWS、FIRST_ROWS等。
2.为什么我的执行计划不是?
CBO依赖于该表的一些统计信息来选择最低成本的执行计划。当这些统计信息不准确时,生成的计划可能不准确。因此,应该使用ANALYZE命令及时分析该表。
3.我的查询上周表现很好。为什么现在慢了?
这是由执行计划的改变引起的。以下因素会改变执行计划:
1.INIT中的参数OPTIMIZER_MODE。ORA文件已更改;
2.在表上定义或更改了并行查询度;
3.使用ANALYZE命令对表格进行重新分析,并使用估算方法,通过选择不同的百分比可以产生不同的分析结果。
4.DB_FILE_MULTIBLOCK_READ_COUNT参数被修改;5.修改SORT_AREA_SIZE参数。
位律师回复
0条评论