oracle的delete语句加速,Oracle delete语句调优一例
接到客户的邮件,说生产环境中执行某一条delete sql语句的时间超过了3个小时。最后客户无奈取消了这次数据清理,准备今天在申请时
今天刚上上班,就接到客户的邮件,说生产环境中执行某一条delete sql语句的时间超过了3个小时。最后客户无奈取消了这次数据清理,,准备今天在申请时间重做。所以希望我在下午之前能够调优一下sql语句。
我拿到sql语句。是一个简单的delete语句,这个表是一个分区表,表中的数据大约有6亿条,要删除的数据大概有900多万条。
delete event
where cycle_code = 25
and cycle_month = 2
and cycle_year = 2015
and customer_id = 5289835;
先来看看执行计划
Plan hash value: 2439880320
-----------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
-----------------------------------------------------------------------------------------------------------------------
| 0 | DELETE STATEMENT | | 3238K| 135M| 404K (1)| 01:20:52 | | |
| 1 | DELETE | EVENT | | | | | | |
| 2 | PARTITION RANGE ITERATOR | | 3238K| 135M| 404K (1)| 01:20:52 | 241 | 261 |
|* 3 | TABLE ACCESS BY LOCAL INDEX ROWID| EVENT | 3238K| 135M| 404K (1)| 01:20:52 | 241 | 261 |
|* 4 | INDEX RANGE SCAN | EVENT_1UQ | 1370K| | 40255 (1)| 00:08:04 | 241 | 261 |
-----------------------------------------------------------------------------------------------------------------------
发现走了索引扫描,看起来性能也不会差到哪去啊?
从整体来看,从6亿条记录中删除900多万条数据,走索引扫描感觉感觉确实是不错的选择。
首先查看了表的分区规则和基本的数据分布情况,
分区规则是基于cycle_code,cycle_month,sub_partition_id这三个字段,从查询条件来看,cycle_code,cycle_month刚好就是分区字段。
TABLE_NAME PARTITION PARTITION_COUNT COLUMN_LIST PART_COUNTS SUBPAR_COUNT STATUS
-------------------- --------- --------------- ------------------------------ ----------- ------------ ------
EVENT RANGE 721 CYCLE_CODE,CYCLE_MONTH,SUB_PAR TITION_ID 3 0 VALID
数据分布的情况如下,根据分区逻辑,数据只可能在这20个分区中。
partition_name high_value tablespace_name num_rows
C25_M2_S1 25, 2, 5 DATAH01 84246910
C25_M2_S2 25, 2, 10 DATAH01 3427570
C25_M2_S3 25, 2, 15 DATAH01 3523431
C25_M2_S4 25, 2, 20 DATAH01 3988140
C25_M2_S5 25, 2, 25 DATAH01 2700687
C25_M2_S6 25, 2, 30 DATAH01 2477792
C25_M2_S7 25, 2, 35 DATAH01 2490349
C25_M2_S8 25, 2, 40 DATAH01 11755212
C25_M2_S9 25, 2, 45 DATAH01 3184953
C25_M2_S10 25, 2, 50 DATAH01 2656802
C25_M2_S11 25, 2, 55 DATAH01 4434668
C25_M2_S12 25, 2, 60 DATAH01 2776079
C25_M2_S13 25, 2, 65 DATAH01 2949885
C25_M2_S14 25, 2, 70 DATAH01 2837790
C25_M2_S15 25, 2, 75 DATAH01 6285172
C25_M2_S16 25, 2, 80 DATAH01 2743439
C25_M2_S17 25, 2, 85 DATAH01 3574228
C25_M2_S18 25, 2, 90 DATAH01 3600820
C25_M2_S19 25, 2, 95 DATAH01 7415434
C25_M2_S20 25, 2, 100 DATAH01 3446285
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
oracle的delete语句加速,Oracle delete语句调优一例相关推荐
- oracle大批量数据统计,加速Oracle大批量数据处理的2个好用方案
其实加速Oracle大批量数据处理并不困难,你选择的实际应用方案很重要,以下的文章主要是对解决加速Oracle大批量数据处理的2个方案的介绍,即,提高DML操作的办法还有各种批量DML操作. 一.加速 ...
- oracle层级计算推演,(特价书)Oracle 高性能SQL引擎剖析:SQL优化与调优机制详解(资深Oracle专家黄玮十年磨一剑,盖国强作序力荐)(china-pub首发)...
第一篇 执 行 计 划 执行计划是指示Oracle如何获取和过滤数据.产生最终结果集,是影响SQL语句执行性能的关键因素.我们在深入了解执行计划之前,首先需要知道执行计划是在什么时候产生的,以及如何让 ...
- SQL 语句中对于like 的调优
SQL> create table test as select * from dba_objects; 表已创建. SQL> select owner,object_name from ...
- oracle java 绑定变量的值_Oracle SQL调优之绑定变量用法简介
最近在看<基于Oracle的SQL优化一书>,并做了笔记,作者的个人博客:http://www.dbsnake.net/ @ 一.SQL执行过程简介 继上一篇博客Oracle的cursor ...
- Oracle数据库 数据库调优
文章目录 一.数据库调优的目标 二.确定调优目标的方式 1. 用户的反馈 2. 日志分析 3. 服务器资源使用资源 4. 数据库内部状况监控 三.数据库的调优维度 1. 选择合适的DBMS 2. 优化 ...
- Oracle调优综述
在过去的十年中, Oracle 已经成为世界上最专业的数据库之一.对于 IT 专家来说,就是要确保利用 Oracle 的强大特性来提高他们公司的生产力.最有效的方法之一是通过 Oracle 调优.它有 ...
- Oracle调优之Hint用法整理笔记
整理工作中用到的Hint,不定时更新,Hint是oracle早期因为oracle优化器还不是很完善加上去的,可以辅助oracle优化器,Hint 是Oracle 提供的一种SQL语法,常用于SQL调优 ...
- Oracle 内存参数调优设置
Oracle 数据库系统中起到调节作用的参数叫初始化参数,数据库管理员根据实际情况需要适当调整这些 初始化参数以优化Oracle系统. 1 主要系统参数调优介绍 2 系统内存参数的分配 2.1 Ora ...
- SQL Server调优系列玩转篇三(利用索引提示(Hint)引导语句最大优化运行)
SQL Server调优系列玩转篇三(利用索引提示(Hint)引导语句最大优化运行) 原文:SQL Server调优系列玩转篇三(利用索引提示(Hint)引导语句最大优化运行) 前言 本篇继续玩转模块 ...
最新文章
- ReentrantLock+线程池+同步+线程锁
- haproxy 同一域名下分发请求
- 机房收费系统----可行性分析报告
- python常用关键字意思_python基础之常用关键字总结
- 【.NET Core项目实战-统一认证平台】第六章 网关篇-自定义客户端授权
- python基础课程5(看代码看注释)--numpy
- 总结一些C/C++的知识点
- 物体非等比缩放后的法线处理
- 面向对象的写法,见到就添,持续更新。。。
- 配对(套利)交易之二,符合配对规则回测
- 英特尔首推异构编程神器 oneAPI,可让程序员少加班!
- atitit.atiLinq v2新特性attilax大总结 q326
- iOS开发中设置UITableView每组头试图与第一行cell之间的分割线
- uniapp 在h5 模式下扫码
- java保存map_Java之map
- Vue报错:Can‘t resolve
- javaweb入门复习——简单的车辆管理系统
- 小学五计算机课程安排,小学五年级信息技术教学计划
- FFmpeg+libmp3lame库源码Linux安装教程(centosarm7.6)
- 信合考试计算机知识,2015年陕西信合考试试题――计算机基础知识五
热门文章
- 关于Android 构建
- Android Fragmnet的使用新体会
- 一个httpwebrequest异步下载的例子
- shardingjdbc全局表_Sharding-JDBC 分库分表概述
- jtable如何从表格中定位_Java Swing组件编程之JTable表格用法实例详解
- 基于canoe 新建一个lin工程_CANoe教程 | 高级编程 - C Library API
- hadoop slaves文件_hadoop:分布式集群参数master节点的配置!
- 公司--As Imp的写法
- java socket超时时间_java中socket 默认超时时间 | 学步园
- js 改变change方法_JS 之设计模式