接到客户的邮件,说生产环境中执行某一条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语句调优一例相关推荐

  1. oracle大批量数据统计,加速Oracle大批量数据处理的2个好用方案

    其实加速Oracle大批量数据处理并不困难,你选择的实际应用方案很重要,以下的文章主要是对解决加速Oracle大批量数据处理的2个方案的介绍,即,提高DML操作的办法还有各种批量DML操作. 一.加速 ...

  2. oracle层级计算推演,(特价书)Oracle 高性能SQL引擎剖析:SQL优化与调优机制详解(资深Oracle专家黄玮十年磨一剑,盖国强作序力荐)(china-pub首发)...

    第一篇 执 行 计 划 执行计划是指示Oracle如何获取和过滤数据.产生最终结果集,是影响SQL语句执行性能的关键因素.我们在深入了解执行计划之前,首先需要知道执行计划是在什么时候产生的,以及如何让 ...

  3. SQL 语句中对于like 的调优

    SQL> create table test as select * from dba_objects; 表已创建. SQL> select owner,object_name from ...

  4. oracle java 绑定变量的值_Oracle SQL调优之绑定变量用法简介

    最近在看<基于Oracle的SQL优化一书>,并做了笔记,作者的个人博客:http://www.dbsnake.net/ @ 一.SQL执行过程简介 继上一篇博客Oracle的cursor ...

  5. Oracle数据库 数据库调优

    文章目录 一.数据库调优的目标 二.确定调优目标的方式 1. 用户的反馈 2. 日志分析 3. 服务器资源使用资源 4. 数据库内部状况监控 三.数据库的调优维度 1. 选择合适的DBMS 2. 优化 ...

  6. Oracle调优综述

    在过去的十年中, Oracle 已经成为世界上最专业的数据库之一.对于 IT 专家来说,就是要确保利用 Oracle 的强大特性来提高他们公司的生产力.最有效的方法之一是通过 Oracle 调优.它有 ...

  7. Oracle调优之Hint用法整理笔记

    整理工作中用到的Hint,不定时更新,Hint是oracle早期因为oracle优化器还不是很完善加上去的,可以辅助oracle优化器,Hint 是Oracle 提供的一种SQL语法,常用于SQL调优 ...

  8. Oracle 内存参数调优设置

    Oracle 数据库系统中起到调节作用的参数叫初始化参数,数据库管理员根据实际情况需要适当调整这些 初始化参数以优化Oracle系统. 1 主要系统参数调优介绍 2 系统内存参数的分配 2.1 Ora ...

  9. SQL Server调优系列玩转篇三(利用索引提示(Hint)引导语句最大优化运行)

    SQL Server调优系列玩转篇三(利用索引提示(Hint)引导语句最大优化运行) 原文:SQL Server调优系列玩转篇三(利用索引提示(Hint)引导语句最大优化运行) 前言 本篇继续玩转模块 ...

最新文章

  1. ReentrantLock+线程池+同步+线程锁
  2. haproxy 同一域名下分发请求
  3. 机房收费系统----可行性分析报告
  4. python常用关键字意思_python基础之常用关键字总结
  5. 【.NET Core项目实战-统一认证平台】第六章 网关篇-自定义客户端授权
  6. python基础课程5(看代码看注释)--numpy
  7. 总结一些C/C++的知识点
  8. 物体非等比缩放后的法线处理
  9. 面向对象的写法,见到就添,持续更新。。。
  10. 配对(套利)交易之二,符合配对规则回测
  11. 英特尔首推异构编程神器 oneAPI,可让程序员少加班!
  12. atitit.atiLinq v2新特性attilax大总结 q326
  13. iOS开发中设置UITableView每组头试图与第一行cell之间的分割线
  14. uniapp 在h5 模式下扫码
  15. java保存map_Java之map
  16. Vue报错:Can‘t resolve
  17. javaweb入门复习——简单的车辆管理系统
  18. 小学五计算机课程安排,小学五年级信息技术教学计划
  19. FFmpeg+libmp3lame库源码Linux安装教程(centosarm7.6)
  20. 信合考试计算机知识,2015年陕西信合考试试题――计算机基础知识五

热门文章

  1. 关于Android 构建
  2. Android   Fragmnet的使用新体会
  3. 一个httpwebrequest异步下载的例子
  4. shardingjdbc全局表_Sharding-JDBC 分库分表概述
  5. jtable如何从表格中定位_Java Swing组件编程之JTable表格用法实例详解
  6. 基于canoe 新建一个lin工程_CANoe教程 | 高级编程 - C Library API
  7. hadoop slaves文件_hadoop:分布式集群参数master节点的配置!
  8. 公司--As Imp的写法
  9. java socket超时时间_java中socket 默认超时时间 | 学步园
  10. js 改变change方法_JS 之设计模式