在oracle生产环境经常会碰到delete大表很慢,job一直没有结束,不清楚当前进度怎么样了。
又或者说后悔了不想delete了,想直接truncate又苦恼回滚的话应用undo块进度要怎么查询,这篇文章以及下篇文章将一一回答你的疑问?不用谢,直接拿去用!

注意本篇文章重点是delete跟踪,想知道怎么优化delete以及回滚相关知识的记得关注博主,博主将在近期更新delete优化和回滚的相关查询知识。

首先,先告诉你delete进度有哪些手段可以查询:

1. v$SESSION,v$SESSION_LONGOPS,V$SQL的三表关联
2.v$transaction--事务跟踪视图,视图很好用,告诉你几个关键字段

一.先创建测试环境
1.创建测试表

create table DBA_OBJECTS_BAK as select * from DBA_OBJECTS

2.插入数据,要创建出一个至少一千万+的大表以模拟真实环境数据量
连续多次插入,之后提交数据

insert into dba_objects_bak select * from dba_objects_bak;
commit;

3.查询表记录是否达到千万级

select count(*) from DBA_OBJECTS_BAK

我这里是达到了2200w条记录

二.开始delete,在delete过程中查看视图,观察进度

delete from dba_objects_bak
SELECT SS.USERNAME,
SS.SID,
SS.SERIAL#,
SS.MACHINE,
SS.PROGRAM,
SL.OPNAME,
SL.TARGET,
SL.START_TIME,
ROUND(SL.SOFAR * 100 / SL.TOTALWORK, 2) || '%' AS PROGRESS,
SL.TIME_REMAINING,
SL.ELAPSED_SECONDS,
S.SQL_ID,
S.SQL_TEXT
FROM V$SESSION SS, V$SESSION_LONGOPS SL, V$SQL S
WHERE SL.SID = SS.SID
AND SS.SQL_ADDRESS = S.ADDRESS
AND SS.SQL_HASH_VALUE = S.HASH_VALUE
AND SL.TIME_REMAINING <> 0;




这里有你想知道的一切关于这条delete的信息,几个关键字段:

1.username–执行delete语句的用户

2.start_time–sql开始执行的时间点

3.progress --sql进度的百分比,这里可以调整小数点,如果sql很慢的话建议多调几位小数,以观察

4.time_remaining–系统估计的剩余时间

5.elapesd_seconds --已经进行的时间

6.sql_id,sql_text --关于这条sql的id和具体文本

7.target --具体的执行对象

再看看另一张视图 有哪些内容呢?也一样好用,已知我们需要删除的行数record为:22108928条


这里的几个关键字段:

1.used_urec --18474364 此字段为undo记录的条数,因为delete过程中是需要将已删除的记录写回到undo中,所以此字段可以知道你当前已经删除了多少条记录了,此纪录有时候可能有一些偏差但基本是正确的,会稍微多一些记录,原因未知,也许是算法不一样?有知道的朋友可以告诉下博主。

2.xid --事务id号 可以关联其他视图查看相关会话信息

3.start_date --开始时间

4.log_id,phy_io,cr_get 逻辑io,物理io,一致读

如果delete未完成就truncate表,此时truncate表会发生资源占用。

下篇文章将引导大家了解一下回滚进度查询以及回滚可能造成的影响以及如何优化delete加快delete删除,减少delete表对数据库以及业务的影响~

oracle delete一直没有结束怎么办 教你跟踪delete和rollback进度之-《delete跟踪篇》相关推荐

  1. 查看oracle死锁进程并结束死锁

    查看oracle死锁进程并结束死锁 摘自: http://sqcjy111.iteye.com/blog/1183928 查看锁表进程SQL语句1: select sess.sid, sess.ser ...

  2. 手把手教你 Creator 2.x 打包 Android APK(Mac篇)

    上一篇我们分享了<手把手教你 Creator 2.x 打包 Android APK(Windows篇)>,今天继续分享 MAC 下的 Android 环境配置. 官方文档: 安装配置原生开 ...

  3. 轻松制作GIF动画!教你玩转PS时间轴之进阶技巧篇

    上一篇文章跟大家讲过PS时间轴的基础,接下来跟大家分享制作简单GIF动画的一些技巧,(文字动画.颜色渐变.咻一咻动画.模糊动画.旋转时钟以及变化的月亮等等),文章提到的动画都有提供打包下载,想学时间轴 ...

  4. 一步步教你轻松学朴素贝叶斯模型算法理论篇1

    一步步教你轻松学朴素贝叶斯模型理论篇1 (白宁超2018年9月3日17:51:32) 导读:朴素贝叶斯模型是机器学习常用的模型算法之一,其在文本分类方面简单易行,且取得不错的分类效果.所以很受欢迎,对 ...

  5. 手把手教你完成CSDN对接百度统计 看完这篇文章你还不会对接 欢迎您提刀顺着网线来砍我!!!!

    大家好,我是:じ☆ve朽木,开发经验都是一步一步慢慢积累的,没有谁生来就具有的,只要我们付出了努力,肯定就会有收获!进入我的博客,带你了解Java知识,js小技巧,带你玩转高端物联网.博客地址为:じ☆ ...

  6. oracle数据库更新语句_20_手把手教你学Python之操作数据库

    数据库是数据的仓库,将大量数据按照一定的方式组织并存储起来,方便进行管理和维护,例如快速检索和统计等.数据库的主要特点: 以一定的方式组织.存储数据: 能为多个用户共享: 与程序彼此独立. -- 数据 ...

  7. oracle命令未正确结束_详解Oracle数据库终止正在进行expdp导出数据的正确操作

    概述 今天在做expdp导出时因没预估好数据量,所以需终止正在进行expdp导出数据的任务.那么怎么正确停止expdp导出任务呢?下面介绍一下我的操作过程. 1.不能用ctrl+c来终止导出(演示) ...

  8. docker oracle创建实例_五分钟教你搭建oracle数据库环境

    环境:centos7 本来在linux安装一个oracle是一件痛苦的事情,这里我们使用docker安装 首先你要先安装docker 没有的话就 yum -y install docker 然后启动d ...

  9. 打开oracle dmp,dmp文件怎么打开,教你win7系统打开dmp文件的方法

    今天小编给大家分享的是win7系统打开dmp文件的方法,经常使用电脑的用户都知道,在windows系统会自动生成一个蓝屏错误的dmp文件,一些用户想打开此问题却不知dmp文件怎么打开,那么请来看看下面 ...

  10. oracle erp的库存管理软件,教你如何充分利用ERP库存管理系统

    现如今,信息化的发展已经势不可挡,企业信息化也是一股必然趋势,那么该怎么实现工业化和信息化的完美融合呢?ERP管理系统能够帮助企业完成这一目标.和传统企业管理系统不同,ERP系统的主要功能是解决管理模 ...

最新文章

  1. Linux_ServicesManagement_RHEL7
  2. java 克隆_Java实现对象克隆的方法
  3. binlog工具_基于Binlog实时同步数仓,有哪些不为人知的坑?
  4. 人脸识别算法_格灵深瞳在人脸识别算法测试(FRVT)中斩获全球第一
  5. ADAS越来越热,这家公司为何能俾睨群雄
  6. Windows下通过MinGW进行WxWidgets的动态编译与静态编译
  7. webrtc收包流程源码分析
  8. Android 触摸手势基础 官方文档概览
  9. 阿里巴巴开源的通用缓存访问框架JetCache介绍
  10. 启动metabase_引入开源BI软件Metabase——数据分析平台建设(一)
  11. 【Python】Matplotlib绘制日期型时间序列图
  12. openstack 在线repo
  13. AutoCAD如何将dwf转成dwg格式
  14. chrome 代理设置
  15. flash学习者不要错过-视频教程打包下载
  16. 要学就学透彻!Spring Security 中 CSRF 防御源码解析
  17. 小米温湿度计接入homeassistant
  18. 英语单词词根词缀和词性互相转换
  19. window.addEventListener()和document.addEventListener()区别
  20. 单维度量表验证性因子分析_验证性因子分析CFA.ppt

热门文章

  1. Windows下SVN修改已经提交的日志
  2. c#Winform自定义控件-目录
  3. 《战狼2》,我可以说点什么
  4. Matlab中如何定义和使用colormap?|colormap的使用
  5. 物体移动时按下Shift键加快速度
  6. VIOS查看网卡对应的插槽
  7. 5G NR 信道质量指示(CQI)概述
  8. docker打包镜像--go语言编写的http项目
  9. 想找个娇小可爱的女孩
  10. 谣言检测论文精读——1.IJCAI2016-Detecting Rumors from Microblogs with Recurrent Neural Networks