ORACLE数据库SQL优化 not in 与not exits
各个表的数据量:
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的更多相关文章
- Oracle数据库SQL优化
SQL优化的最终目的是用户体验-在最短时间内让用户在页面数据.因此,执行时间是SQL优化的重要指标.在SQL查询中,I/O操作最占系统性能的.I/O操作量越大,时间越久.减少I/O操作量是优化SQL的 ...
- 基于Oracle的SQL优化(社区万众期待 数据库优化扛鼎巨著)
基于Oracle的SQL优化(社区万众期待数据库优化扛鼎巨著) 崔华 编 ISBN 978-7-121-21758-6 2014年1月出版 定价:128.00元 856页 16开 编辑推荐 本土O ...
- Oracle 数据库SQL性能查看
作为一个开发/测试人员,或多或少都得和数据库打交道,而对数据库的操作归根到底都是SQL语句,所有操作到最后都是操作数据,那么对sql性能的掌控又成了我们工作中一件非常重要的工作.下面简单介绍下一些查看 ...
- 基于oracle的sql优化
[基于oracle的sql优化] 基于oracle的sql优化 [博主]高瑞林 [博客地址]http://www.cnblogs.com/grl214 一.编写初衷描述 在应有系统开发初期,由于数据库 ...
- Oracle之SQL优化专题01-查看SQL执行计划的方法
在我2014年总结的"SQL Tuning 基础概述"中,其实已经介绍了一些查看SQL执行计划的方法,但是不够系统和全面,所以本次SQL优化专题,就首先要系统的介绍一下查看SQL执 ...
- 转://从一条巨慢SQL看基于Oracle的SQL优化
http://mp.weixin.qq.com/s/DkIPwbDKIjH2FMN13GkT4w 本次分享的内容是基于Oracle的SQL优化,以一条巨慢的SQL为例,从快速解读SQL执行计划.如何从 ...
- 从一条巨慢SQL看基于Oracle的SQL优化(重磅彩蛋+PPT)
本文根据DBAplus社群第110期线上分享整理而成,文末还有好书送哦~ 讲师介绍 丁俊 新炬网络首席性能优化专家 SQL审核产品经理 DBAplus社群联合发起人.<剑破冰山-Oracle开发 ...
- 数据库sql优化总结之5--数据库SQL优化大总结
数据库SQL优化大总结 小编最近几天一直未出新技术点,是因为小编在忙着总结整理数据库的一些优化方案,特此奉上,优化总结较多,建议分段去消化,一口吃不成pang(胖)纸 一.百万级数据库优化方案 1.对 ...
- 我的mysql数据库sql优化原则
原文 我的mysql数据库sql优化原则 一.前提 这里的原则 只是针对mysql数据库,其他的数据库 某些是殊途同归,某些还是存在差异.我总结的也是mysql普遍的规则,对于某些特殊情况得特殊对待. ...
随机推荐
- JavaScript常见封装方法
1.最简单的,使用变量,然后用匿名函数包裹,不封装 2.对象字面量简单封装(不完整的模块模式,因为无法达到变量.方法私有效果.不过确实有分离和组织代码的能力,也就算一种简略的模块模式的实现方式) va ...
- 【编程技巧】JAVA读取url地址中的文本内容
应用场景:最常见的是有自已的网站,在注册广告联盟的时候.都需要下载一个文本文件来验证网站的有效性.例如淘宝.京东等都有这一过程 实现代码://读url地址的内容 public void ...
- Hadoop问题:Incorrect configuration: namenode address dfs.namenode.rpc-address is not configured
问题描述:Incorrect configuration: namenode address dfs.namenode.rpc-address is not configured 问题分析:core- ...
- intent详解(一)
摘录自:http://blog.csdn.net/harvic880925/article/details/38399723 前言:通过重新翻看Android入门书籍,才发现原来自己露掉了那么多基础知 ...
- 爬取知名社区技术文章_setting_5
# -*- coding: utf-8 -*- # Scrapy settings for JobBole project # # For simplicity, this file contains ...
- java里程碑之泛型--泛型注意的几点
1,泛型的基本语法:类名<具体类> 对象名 = new 类名<具体类>().类型参数规范如下: 1),K键,比如映射的键,key的类型 2),V值,比如Map的值,value类 ...
- SSE图像算法优化系列十五:YUV/XYZ和RGB空间相互转化的极速实现(此后老板不用再担心算法转到其他空间通道的耗时了)。
在颜色空间系列1: RGB和CIEXYZ颜色空间的转换及相关优化和颜色空间系列3: RGB和YUV颜色空间的转换及优化算法两篇文章中我们给出了两种不同的颜色空间的相互转换之间的快速算法的实现代码,但是 ...
- 【转】GAMITBLOBK中固定解、浮点解、约束解、松弛解等解类型解释
在GAMIT/GLOBK的使用过程中,经常会碰到固定解.浮点解.约束解.松弛解及其相关组合解(如约束固定解)等词汇,对于初学者,一时难以弄明白其中的含义,一般只有按部就班按照教程中,怎么说就怎么弄,不 ...
- cobbler自动化安装系统
笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 在很久很久以前,使用kickstart实现自动化安装的时候,我一直认为装系统是多么高大上的活,直到cobbler的 ...
- 不干胶打印机 www.bgjdyj.com
不干胶打印机如何保养 不干胶打印机专卖网根据多年的维修经验总结了以下几种保养不干胶打印机的方法: 1.不干胶打印机打印机标签纸不能搁置太长时间,第一容易起静电.第二容易起灰尘2.不干胶打印机的打印头最 ...