a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 167|回复: 0

[考试辅导] Oracle数据库中CBO优化的方法及问题

[复制链接]
发表于 2012-8-4 14:06:19 | 显示全部楼层 |阅读模式
一.如何使用CostBased优化器优化查询操作?  
" H+ U3 |% |2 I" ]) Q- POracle 提供了基于成本(CostBased)和基于规则(RuleBased)两种优化器,简称为CBO和RBO,用于确定查询操作的执行计划。CostBased优化器将计算各种执行计划的开销,然后选出最低成本的执行计划。可使用下列方法选择使用CBO:  
% Q# m. i2 W8 Z# Z+ N/ i& R/ A3 K; E: `2 U2 M. \
1.在INIT.ORA文件中设置参数OPTIMIZER_MODE=choose;  $ J4 @' L6 W' Z6 u# \" D1 ^( ~
4 j) L) S7 l; Y3 h2 Q6 E$ N
2.在Session级设置OPTIMIZER_GOAL=FIRST_ROWS或ALL_ROWS。  1 M8 z0 R6 R/ c$ t4 z( o% v

9 [) B! T6 U2 r4 j/ p0 U3、在查询语句中使用Hint,包括CHOOSE、ALL_ROWS、FIRST_ROWS等。  ( ?& D* y& f7 Z: p3 u
8 }, k7 ?& ^2 @; }
二.为什么我的执行计划不是最好的?  5 c2 T3 P& a: f6 Z% x1 {* @
CBO是依赖于表的一些统计信息来选择出最低成本的执行计划,当这些统计信息不准确时,产生的计划便可能不是最佳的。因而应使用ANALYZE命令及时对表进行分析统计。  : o$ s* \9 |6 A* u/ T8 @
/ a5 T3 t+ d0 T7 A) P
三.我的查询上周的性能很好,为什么现在查询速度很慢?  4 q3 q7 s, p' |
这是由于执行计划被改变而造成的,下列因素将会改变一个执行计划:  $ {" I: w+ W/ w& \' I
1、INIT.ORA文件中的参数OPTIMIZER_MODE被改变;  
1 K+ {6 c1 j9 r. s2、表上定义或改变了并行查询度;  
. J( j; `* b# c$ B3、使用ANALYZE命令重新分析了表,而且使用了ESTIMATE方式,这种方式选择不同的百分比可产生不同的分析结果;  
2 `2 d* o5 E5 X( ^- ]4、DB_FILE_MULTIBLOCK_READ_COUNT参数被修改;5、SORT_AREA_SIZE参数被修改。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-9-28 06:25 , Processed in 0.235336 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表