Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

0

积分

1

好友

6

主题
1#
发表于 2013-11-8 10:54:43 | 查看: 6091| 回复: 12
aix上oracle 10.2.0.4 rac(2节点),在oem中监控到同一个sql有多个执行计划,请问是什么原因呢?具体情况见下面的图:
执行计划1 :
执行计划1.jpg
执行计划2:
执行计划2.jpg
表结构:
表结构.jpg
索引情况:
索引情况.jpg
2#
发表于 2013-11-8 10:54:44
F_WOBNUM 为raw类型。原先是全表扫描,F_WOBNUM 有隐式转换。rawtohex 。今天发现有2个执行计划,且走索引了(隐式转换也没有了),不知道是什么原因。

回复 只看该作者 道具 举报

3#
发表于 2013-11-8 11:00:06
同一个sql有多个执行计划,为什么不能?

回复 只看该作者 道具 举报

4#
发表于 2013-11-8 11:01:50
刘大,这个该怎么处理呢?

回复 只看该作者 道具 举报

5#
发表于 2013-11-8 11:05:08
Maclean Liu(刘相兵 发表于 2013-11-8 11:00
同一个sql有多个执行计划,为什么不能?

加hint也会出现双执行计划?

回复 只看该作者 道具 举报

6#
发表于 2013-11-8 11:09:20
HINT用的不对

回复 只看该作者 道具 举报

7#
发表于 2013-11-8 11:10:27
2、一开始就用oEM  会把自己的调优能力废掉

回复 只看该作者 道具 举报

8#
发表于 2013-11-8 11:11:54
Maclean Liu(刘相兵 发表于 2013-11-8 11:10
2、一开始就用oEM  会把自己的调优能力废掉

hint应该用VWRWOBNUM8_484?

回复 只看该作者 道具 举报

9#
发表于 2013-11-9 10:33:52
查询中表使用了别名,在hint没有用别名。语法不对。

回复 只看该作者 道具 举报

10#
发表于 2013-11-9 14:55:08
hint 使用錯誤
1、如果使用alias,hint中也要使用alias,否則無效,如下:
    /*+ INDEX(SELECTMAIN  VMrwobtag8_484)*/
2、你可以去掉alias (SELECTMAIN  ),但建議使用第一種方法,最好查詢的列中也加上alias

回复 只看该作者 道具 举报

11#
发表于 2013-11-15 11:31:14
如果去掉别名的话,f_tag is not null 是否还需要?f_tag 上有复合索引。

回复 只看该作者 道具 举报

12#
发表于 2013-11-15 11:33:24
f_tag 字段本身是非空 的。

回复 只看该作者 道具 举报

13#
发表于 2013-11-16 19:35:08
同一个sql有多个执行计划 ,这在ORACLE里很正常。
如果你要一个SQL只使用你指定的执行计划, 那么可以用 SQL PROFILE、SQL BASELINE等技术,使用HINT在10g/11g以后对于后期调整SQL执行计划来说是不推荐的。 为什么这么说?因为HINT毕竟要修改SQL,而且HINT是死板的禁锢,而SQL PROFILE和SQL BASELINE则并非这样。

我推荐初学ORACLE优化的同学至少看一下Oracle 官方的 Performance Tuning Guide, 磨刀觉不误砍柴

回复 只看该作者 道具 举报

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

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-21 12:52 , Processed in 0.053979 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569