oracle中外连接在mysql_【案例】Oracle性能优化之将not exists更改为外连接

【案例】Oracle性能优化之将not exists更改为外连接

时间:2016-10-22 22:21   来源:Oracle研究中心   作者:HTZ   点击:

天萃荷净

将not exists更改为外连接,运维DBA反映当前Oracle数据库环境中有一条SQL语句占用CPU较高,通过SQL语句的执行计划来优化该语句降低CPU占用。

主机CPU一直100%,其中有一条SQL,每秒同时有15进程正在执行,并且性能还不好,要想降低CPU,就得先把这条SQL搞定Oracle oracleplus.net,估计搞定这条SQL,CPU大概可以降到70%以下。

1.原始SQL的执行性能如下:

SQL> SELECT BILLFLOW_ID, PACKAGE_ID, FILE_CNT, BILLING_CYCLE_ID

2 FROM (select * from B_FILE_PACKAGE ORDER BY CREATED_DATE) a

3 where not exists (select *

4 from B_PACKAGE_STATE_TRANS b

5 where b.package_id = a.package_id

6 and b.process_id = 11081)

7 and A.STATE = ‘RDY’

8 AND BILLFLOW_ID in (6, 25)

9 and rownum < 1000;

Execution Plan

———————————————————-

Plan hash value: 2380269418

———————————————————————————————————-

| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |

———————————————————————————————————-

| 0 | SELECT STATEMENT | | 999 | 57942 | | 5752 (1)| 00:01:10 |

|* 1 | COUNT STOPKEY | | | | | | |

| 2 | NESTED LOOPS ANTI | | 1000 | 58000 | | 5752 (1)| 00:01:10 |

| 3 | VIEW | | 5666 | 254K| | 82 (2)| 00:00:01 |

| 4 | SORT ORDER BY | | 1304K| 41M| 70M| 18767 (2)| 00:03:46 |

|* 5 | TABLE ACCESS FULL| B_FILE_PACKAGE | 1304K| 41M| | 7086

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值