各个表的数据量:

sys_file_convert_queue 65989
sys_att_file 73061
sys_att_main 84405
sys_att_rtf_data 1507

优化前,执行时间大概2分多钟
SQL> set autotrace traceonly
SQL> delete from sys_file_convert_queue
where ((fd_file_id is not null or fd_file_id <> '') and
fd_file_id not in (select fd_id from sys_att_file))
or fd_attmain_id not in
(select fd_id
from sys_att_main
union all
select fd_id from sys_att_rtf_data); rows deleted. Execution Plan
----------------------------------------------------------
Plan hash value: --------------------------------------------------------------------------------
--------------- | Id | Operation | Name | Rows | Bytes | Cost (%C
PU)| Time | --------------------------------------------------------------------------------
--------------- | | DELETE STATEMENT | | | 9879K| 125K
()| :: | | | DELETE | SYS_FILE_CONVERT_QUEUE | | |
| | |* | FILTER | | | |
| | | | TABLE ACCESS FULL | SYS_FILE_CONVERT_QUEUE | | 9879K|
()| :: | | | UNION-ALL | | | |
| | |* | INDEX UNIQUE SCAN| SYS_C0015191 | | |
()| :: | |* | INDEX UNIQUE SCAN| SYS_C0015192 | | |
()| :: | |* | INDEX FULL SCAN | SYS_C0014984 | | |
()| :: | --------------------------------------------------------------------------------
--------------- Predicate Information (identified by operation id):
--------------------------------------------------- - filter( NOT EXISTS ( (SELECT "FD_ID" FROM "SYS_ATT_MAIN" "SYS_ATT_MAIN" W
HERE "FD_ID"=:B1) UNION ALL (SELECT "FD_ID" FROM "SYS_ATT_RTF_DATA" "S
YS_ATT_RTF_DATA" WHERE "FD_ID"=:B2)) OR ("FD_FILE_ID" IS NOT NULL OR "FD_FILE_ID"<>
'') AND NOT EXISTS (SELECT FROM "SYS_ATT_FILE" "SYS_ATT_FILE" WHERE LNNVL("FD_ID"<>
:B3))) - access("FD_ID"=:B1)
- access("FD_ID"=:B1)
- filter(LNNVL("FD_ID"<>:B1)) Statistics
----------------------------------------------------------
recursive calls
db block gets
consistent gets
physical reads
redo size
bytes sent via SQL*Net to client
bytes received via SQL*Net from client
SQL*Net roundtrips to/from client
sorts (memory)
sorts (disk)
rows processed
优化后,执行时间2秒不到
SQL> delete from sys_file_convert_queue a
where not exists
(select fd_id from sys_att_file b where a.fd_file_id = b.fd_id)
or not exists (select
from (select fd_id
from sys_att_main
union all
select fd_id from sys_att_rtf_data) c
where a.fd_attmain_id = c.fd_id)
; rows deleted. Execution Plan
----------------------------------------------------------
Plan hash value: --------------------------------------------------------------------------------
---------------- | Id | Operation | Name | Rows | Bytes | Cost (%
CPU)| Time | --------------------------------------------------------------------------------
---------------- | | DELETE STATEMENT | | | 9879K|
()| :: | | | DELETE | SYS_FILE_CONVERT_QUEUE | | |
| | |* | FILTER | | | |
| | | | TABLE ACCESS FULL | SYS_FILE_CONVERT_QUEUE | | 9879K|
()| :: | |* | INDEX UNIQUE SCAN | SYS_C0014984 | | |
()| :: | | | VIEW | | | |
()| :: | | | UNION-ALL | | | |
| | |* | INDEX UNIQUE SCAN| SYS_C0015191 | | |
()| :: | |* | INDEX UNIQUE SCAN| SYS_C0015192 | | |
()| :: | --------------------------------------------------------------------------------
---------------- Predicate Information (identified by operation id):
--------------------------------------------------- - filter( NOT EXISTS (SELECT FROM "SYS_ATT_FILE" "B" WHERE "B"."FD_ID"=:B
) OR NOT EXISTS (SELECT FROM ( (SELECT "FD_ID" "FD_ID" FROM "SYS_ATT
_MAIN" "SYS_ATT_MAIN" WHERE "FD_ID"=:B2) UNION ALL (SELECT "FD_ID" "FD_ID" FROM "SYS_AT
T_RTF_DATA" "SYS_ATT_RTF_DATA" WHERE "FD_ID"=:B3)) "C"))
- access("B"."FD_ID"=:B1)
- access("FD_ID"=:B1)
- access("FD_ID"=:B1) Statistics
----------------------------------------------------------
recursive calls
db block gets
consistent gets
physical reads
redo size
bytes sent via SQL*Net to client
bytes received via SQL*Net from client
SQL*Net roundtrips to/from client
sorts (memory)
sorts (disk)
rows processed

ORACLE数据库SQL优化 not in 与not exits的更多相关文章

  1. Oracle数据库SQL优化

    SQL优化的最终目的是用户体验-在最短时间内让用户在页面数据.因此,执行时间是SQL优化的重要指标.在SQL查询中,I/O操作最占系统性能的.I/O操作量越大,时间越久.减少I/O操作量是优化SQL的 ...

  2. 基于Oracle的SQL优化(社区万众期待 数据库优化扛鼎巨著)

    基于Oracle的SQL优化(社区万众期待数据库优化扛鼎巨著) 崔华 编   ISBN 978-7-121-21758-6 2014年1月出版 定价:128.00元 856页 16开 编辑推荐 本土O ...

  3. Oracle 数据库SQL性能查看

    作为一个开发/测试人员,或多或少都得和数据库打交道,而对数据库的操作归根到底都是SQL语句,所有操作到最后都是操作数据,那么对sql性能的掌控又成了我们工作中一件非常重要的工作.下面简单介绍下一些查看 ...

  4. 基于oracle的sql优化

    [基于oracle的sql优化] 基于oracle的sql优化 [博主]高瑞林 [博客地址]http://www.cnblogs.com/grl214 一.编写初衷描述 在应有系统开发初期,由于数据库 ...

  5. Oracle之SQL优化专题01-查看SQL执行计划的方法

    在我2014年总结的"SQL Tuning 基础概述"中,其实已经介绍了一些查看SQL执行计划的方法,但是不够系统和全面,所以本次SQL优化专题,就首先要系统的介绍一下查看SQL执 ...

  6. 转://从一条巨慢SQL看基于Oracle的SQL优化

    http://mp.weixin.qq.com/s/DkIPwbDKIjH2FMN13GkT4w 本次分享的内容是基于Oracle的SQL优化,以一条巨慢的SQL为例,从快速解读SQL执行计划.如何从 ...

  7. 从一条巨慢SQL看基于Oracle的SQL优化(重磅彩蛋+PPT)

    本文根据DBAplus社群第110期线上分享整理而成,文末还有好书送哦~ 讲师介绍 丁俊 新炬网络首席性能优化专家 SQL审核产品经理 DBAplus社群联合发起人.<剑破冰山-Oracle开发 ...

  8. 数据库sql优化总结之5--数据库SQL优化大总结

    数据库SQL优化大总结 小编最近几天一直未出新技术点,是因为小编在忙着总结整理数据库的一些优化方案,特此奉上,优化总结较多,建议分段去消化,一口吃不成pang(胖)纸 一.百万级数据库优化方案 1.对 ...

  9. 我的mysql数据库sql优化原则

    原文 我的mysql数据库sql优化原则 一.前提 这里的原则 只是针对mysql数据库,其他的数据库 某些是殊途同归,某些还是存在差异.我总结的也是mysql普遍的规则,对于某些特殊情况得特殊对待. ...

随机推荐

  1. [拾 得] 一枚迷人的贝壳 SHELL / Linux | shell 脚本初步入门

    坚持知识分享,该文章由Alopex编著, 转载请注明源地址: http://www.cnblogs.com/alopex/   索引: 什么是shell shell的分类 shell脚本的执行方式   ...

  2. 通过自定义的URL Scheme启动你的App

    iPhone SDK可以把你的App和一个自定义的URL Scheme绑定.该URL Scheme可用来从浏览器或别的App启动你的App. 如何响应从别的App里发给你的URL Scheme申请,由 ...

  3. 详解Office 外接程序 COM Add In的LoadBehavior及其妙用

    Office的所有COM Add In,包括用Shared Add In模板和VSTO Add In模板创建的,都会在注表里面存储一些信息.对于当前用户安装的Add In,以Excel为例,对应的注册 ...

  4. java LinkedLis t的26种使用方法

    LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用. LinkedList的构造函数如下 1. public LinkedList():  --生成空的链表 2. p ...

  5. 2017-07-08( bzip2 bunzip mount)

    .bz2 压缩格式  不能压缩目录 bzip2  源文件  (不保留源文件) bzip2 -k  源文件 (保留源文件) bzip2 -d  压缩文件名  (-k保留压缩文件) bunzip  压缩文 ...

  6. DispatcherServlet介绍

    <property name="features"> <list> <value>WriteMapNullValue</value> ...

  7. 童攀TP5企业网站实战笔记

    $this->assign('data',$data) ---恢复内容开始--- return view();   载入视图 {include file='public/head'} 包含文件 ...

  8. html页面不显示中文

    问题:HTML编辑中文后无法在网页上显示中文 原因:是适用的 Cufon字体包不支持中文造成的. 简单粗暴的解决方法:如果你本来打算是去掉Cufon,可以看一看<如何禁用Cufon功能>. ...

  9. PHPUnit使用教程——PHP环境变量+x-debug+composer+phpunit配置安装(超详细!)

    注意:Windows系统 一.提前入坑点:要求php5.6,7.0,7.1,不论使用集成版还是非集成版的小伙伴都要好好查看自己的php版本,个人的版本居然是5.5.X的,哭唧唧.不过别担心,爸爸教你升 ...

  10. OpenStack云平台网络模式及其工作机制

    转自:http://openstack.csdn.net/content.html?arcid=2808381 OpenStack云平台网络模式及其工作机制 网络,是OpenStack的部署中最容易出 ...