Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1201517
  • 博文数量: 398
  • 博客积分: 10110
  • 博客等级: 上将
  • 技术积分: 4055
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-23 20:01
个人简介

新博客http://www.cnblogs.com/zhjh256 欢迎访问

文章分类

全部博文(398)

文章存档

2012年(1)

2011年(41)

2010年(16)

2009年(98)

2008年(142)

2007年(100)

我的朋友

分类: Oracle

2008-05-26 19:49:27

虽然我并不推荐在sql调优的时候使用Hint,因为我觉得在绝大多数情况下,如果表设计的好,索引建的对,sql编写避免常见的误区,cbo已经很聪明了。
下午做了一个sql的调优,用了NO_MERGE提示,开始这个查询时间用了40秒,调整后的sql用了3秒。主要是因为Oracle重写了这个视图引起的。
select 
 s.outage_id OUTAGE_ID,
 S.OUTAGE_TYPE,
 S.status_cd,
 to_number(NULL),
 '',
 DECODE(t.LINE_ITEM_STATUS_CD,
        'ETCSTA2',
        'A',
        'ETCSTA3',
        'COMP',
        'ETCSTA5',
        'EA',
        'ETCSTA4',
        'EP',
        'ETCSTA6',
        'ER',
        'ETCSTA1',
        'I',
        'ETCSTA7',
        'PA',
        'ETCSTA22',
        'PP',
        'ETCSTA21',
        'PR',
        'ETCSTA23',
        'P',
        NULL) STATUS_CODE,
 '',
 t.issue_dt,
 s.scheduled_start_dt
  from ETCHT_LINE_ITEM_TRANS t,
       CTSV_OUTAGE_EVENT     s,
       CTST_EQUIPMENT        EQ,
       LOV_PRPTY             LPT,
       LOV_PRPTY             LFRM
 where s.GEN_UNIT_ID = 31280
   AND (s.outage_id = t.outage_id OR
       (s.ETECH_STATUS_CD = 'O' AND t.outage_id IS NULL))
   and s.outage_id = t.outage_id(+)
   and s.status_cd NOT IN ('READY for outage')
   and s.outage_id is not NULL
   AND s.UNIT_NUMBER_ID = EQ.UNIT_NUMBER_ID
   AND EQ.TECHNOLOGY_TYPE_CD = LPT.LOV_PRPTY_ID
   AND EQ.FRAME_SIZE_ID = LFRM.LOV_PRPTY_ID
   AND s.ETECH_STATUS_CD IN ('O', 'RF', 'OC')
   AND s.OUTAGE_TYPE <> 'UU'
   AND LFRM.VAL_NM = 'HEAVYDUTY'
   AND ((LPT.VAL_CD IN ('JMG', 'JMS', 'J4', 'J1', 'J3', 'J2') AND
       s.OUTAGE_TYPE <> 'MINOR') OR
       (LPT.VAL_CD IN ('JMS', 'J1', 'J2') AND s.OUTAGE_TYPE = 'MINOR'))
   AND EQ.SERVICE_RELATIONSHIP_NM IN ('CSAHV', 'OMCSAHV', 'CSALV', 'OMCSALV',
        'CSAMV', 'OMCSAMV', 'OM', 'OGCSA')
执行计划:
用了NO_MERGE提示之后的执行计划:
虽说某些时候可能会需要hint,但是我原则上还是很少使用的,而且我认为使用hint主要是为了稳定一些。
在某些Oracle重写了视图的情况下,使用该提示可能会有帮助。
 
 
阅读(2300) | 评论(0) | 转发(0) |
0

上一篇:列行转换

下一篇:非得做某些事

给主人留下些什么吧!~~