一次优化的过程

最近发现公司的主数据库CPU负载严重,通过TOP工具发现占用CPU严重的SPID,
通过如下语句得到该SPID具体执行的SQL:
select ps.spid,se.sid,se.USERNAME,sql_text from
v$sql sql,
v$session se,
v$process ps
where
se.SQL_ADDRESS=sql.ADDRESS and ps.ADDR=se.PADDR and ps.SPID='&id';

该SQL语句如下:
SELECT snd_phone, title, trade_code, price, rcv_phone,         
         TO_CHAR (send_time, 'yyyy-mm-dd hh24:mi:ss'),         
         TO_CHAR (sended_time, 'yyyy-mm-dd hh24:mi:ss'), state
    FROM tbl_send_histroy                                      
   WHERE snd_phone LIKE '%139XXXXXXXX'                        
     AND send_time BETWEEN TO_DATE ('2004-05-01', 'YYYY-MM-DD')
                       AND TO_DATE ('2005-05-26', 'YYYY-MM-DD')
ORDER BY send_time DESC  

tbl_send_histroy表是一个几千万条记录的日志表,并且做了分区,并且在send_time+snd_phone上建立了一个复合索引,
跟踪该sql语句的执行计划如下:
SQL> SELECT snd_phone, title, trade_code, price, rcv_phone,
  2           TO_CHAR (send_time, 'yyyy-mm-dd hh24:mi:ss'),
  3           TO_CHAR (sended_time, 'yyyy-mm-dd hh24:mi:ss'), state
  4      FROM tbl_send_histroy
  5     WHERE snd_phone LIKE '%13910613104'
  6       AND send_time BETWEEN TO_DATE ('2004-05-01', 'YYYY-MM-DD')
  7                         AND TO_DATE ('2005-05-26', 'YYYY-MM-DD')
  8  ORDER BY send_time DESC
  9  /

已选择2496行。

已用时间:  00: 00: 09.07

Execution Plan
----------------------------------------------------------                     
   0      SELECT STATEMENT Optimizer=CHOOSE (Cost=3 Card=994 Bytes=179         
          914)                                                                  
                                                                                
   1    0   TABLE ACCESS (BY GLOBAL INDEX ROWID) OF 'TBL_SEND_HISTROY'         
           (Cost=3 Card=994 Bytes=179914)                                       
                                                                                
   2    1     INDEX (RANGE SCAN DESCENDING) OF 'IDX_ST_SP' (NON-UNIQUE         
          ) (Cost=2 Card=1789)                                                  
                                                                                



Statistics
----------------------------------------------------------                     
          0  recursive calls                                                   
          0  db block gets                                                      
      30304  consistent gets                                                   
      12232  physical reads                                                     
          0  redo size                                                         
     174572  bytes sent via SQL*Net to client                                   
       2322  bytes received via SQL*Net from client                             
        168  SQL*Net roundtrips to/from client                                 
          0  sorts (memory)                                                     
          0  sorts (disk)                                                      
       2496  rows processed                                                     

SQL> /

已选择2496行。

已用时间:  00: 00: 08.00

Execution Plan
----------------------------------------------------------                     
   0      SELECT STATEMENT Optimizer=CHOOSE (Cost=3 Card=994 Bytes=179         
          914)                                                                  
                                                                                
   1    0   TABLE ACCESS (BY GLOBAL INDEX ROWID) OF 'TBL_SEND_HISTROY'         
           (Cost=3 Card=994 Bytes=179914)                                       
                                                                                
   2    1     INDEX (RANGE SCAN DESCENDING) OF 'IDX_ST_SP' (NON-UNIQUE         
          ) (Cost=2 Card=1789)                                                  
                                                                                



Statistics
----------------------------------------------------------                     
          0  recursive calls                                                   
          0  db block gets                                                      
      30304  consistent gets                                                   
       2437  physical reads                                                     
          0  redo size                                                         
     174572  bytes sent via SQL*Net to client                                   
       2322  bytes received via SQL*Net from client                             
        168  SQL*Net roundtrips to/from client                                 
          0  sorts (memory)                                                     
          0  sorts (disk)                                                      
       2496  rows processed

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

转载于:http://blog.itpub.net/28419/viewspace-613747/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值