Oracle优化(10)

利用二叉并行方法监控操作系统资源控制情况,使用Oracle系统会话等待统计数据确定系统性能难点的确切性质,为有效的性能管理做好充分准备,方法的关键是找出问题根源。再总
结一下这个方法:
1、从V$system_event开始,确定最需要何种资源。如db file sequencial read(索引扫描的等待事件);
2、研究V$Session_event,看看系统事件涉及到哪些会话;
3、查看V$session_wait,查看资源争用的情况,如哪些文件、闩、表发生争用;
4、检查P1-P3的值,找出与其他视图的关系;
5、考虑等待这些事件及其他事件的时间,选取前5个事件;
6、继续这个过程,直到找到与事件有关的争用;
7、确定哪些SQL语句与争用有关;
8、分析OS统计数据;
9、一旦确定问题,决定一种方案实现它;
10、采用适当的更改控制机制,跟踪做过什么修改。
索引扫描始终是执行查询的最好方法,因为它执行的I/O操作比全表扫描少且执行效果更好。
Oracle的性能问题80%都是由拙劣的SQL语句造成的。
Oracle优化程序的故事
1、老伙计:基于规则的优化程序
规则#1 用ROWID选行。针对Where子句中使用ROWID编号的应用程序。但是在应用程序的表进行重构时要付出昂贵代价。
规则#8 用于组合索引(即多列索引)的访问
规则#9 用于单列索引的访问
规则#15全表扫描
当使用基于规则的优化程序时,当优化程序有一个要处理的SQL语句时,优化程序从底部(假如是规则#15)开始向上搜索,
如果找到一个索引将索引作为规则8或9限定的索引,假定规则8或9比规则#15有更高的优先级,没有进一步的规则适合该SQL
按照规则8或9进行查询。基于规则的优化程序假设一个SQL语句符合某个已知规则,并规则号越小认为越好。
2、新生儿:基于成本的优化程序
Oracle优化程序的初始参数设置(最好在会话级别修改)
alter session set OPTIMIZER_MODE=FIRST_ROWS
为确定在一个给定的模式中计算所有对象的统计数据的最后时间,可以查询DBA_TAB_COLUMNS数据字典视图的Last_Analyzed列。
需要用Distinct关键字进行查询,因为对每个表的每个列返回结果为一行。
对象统计数据的计算
统计计算通过analyse命令来完成,对表执行analyse命令,计算该表的统计数据,并且计算该表的所有索引的统计数据。统计方法
有两种:根据样本数量估计统计数据和计算整个对象的统计数据;不要对SYS用户计算统计数据。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/518171/viewspace-667904/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/518171/viewspace-667904/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值