达梦回滚表空间的空间占用和释放

我们知道DML和DDL的区别之一是DML(INSERT、UPDATE、DELETE)操作数据库会产生重做日志和回滚日志,DDL不会产生重做日志和回滚日志,本章从系统表和动态视图上来分析达梦数据库DML和DDL对回滚表空间的占用,以及达梦回滚表空间的空间释放。

环境说明:

操作系统:银河麒麟V10

数据库:DM8

相关关键字:回滚段、空间释放、v$purge

一、CREATE TABLE和INSERT场景测试

  1. 创建表空间

create tablespace dmtbs01 datafile 'DMTBS01.DBF' size 100 autoextend off;
create tablespace dmtbs02 datafile 'DMTBS02.DBF' size 100 autoextend off;
create tablespace dmtbs03 datafile 'DMTBS03.DBF' size 100 autoextend off;

2、构造表数据

创建表:

create table t_emp01 tablespace dmtbs01 as select * from dmhr.employee;

插入数据:

begin 
for i in 1..6 loop 
insert into t_emp01 select * from t_emp01;
end loop;
commit;
end;

3、查看purge回滚段信息:

select * from v$purge;
select * from v$purge_pseg_obj;
select * from v$purge_pseg_tab;

可以看到insert插入的数据purge回滚段中记录了回滚记录信息:

查看回滚段中这几个tab_id对应的表,可以看到5607的事务操作的都是系统表(即CREATE TABLE语句操作的是SYSOBJECTS、SYSINDEXES、SYSCOLUMNS、SYSOBJINFOS系统表),5608事务操作的是T_EMP01表(insert语句操作表本身)。

4、再使用CTAS方式创建表,查看purge回滚段数据占用情况:

create table IF NOT EXISTS t_emp02 tablespace dmtbs02 as select * from t_emp01;
create table IF NOT EXISTS t_emp03 tablespace dmtbs03 as select * from t_emp01;

可以看到CTAS方式创建表时(包含数据),回滚段中只记录创建表对数据字典表的操作产生的回滚信息,不记录表记录回滚信息。这也就是说明了为什么CTAS方式创建表并插入数据为什么不先创建表,然后再插入数据要快。

二、DELETE、TRUNCATE、DROP场景测试

查看这三张表的表空间占用情况(BYTES表示数据文件总大小, USER_BYTES表示数据文件剩余空间):

select TABLESPACE_NAME, BYTES, USER_BYTES
from dba_data_files t
where t.tablespace_name like 'DMTBS%'
order by 1;

或查询user_segments表中空间占用情况:

select segment_name, segment_type, tablespace_name, bytes
from user_segments t
where segment_name like 'T_EMP%'
order by 1;

使用如下三个方式分别delete、truncate和drop表。

delete from t_emp01; 
truncate table t_emp02;
drop table t_emp03;

此时查看purge回滚段空间占用情况,可以看到delete操作的是T_EMP01表本身(5613事务),truncate操作的只有SYSOBJINFOS系统表(5614事务),而drop操作的是多个系统表(5616事务),如下所示:

及时查询数据的表空间占用情况,可以看到truncate表后空间立即释放,但delete和drop的空间没有立即释放,USER_SEGEMNTS中drop表后对应的数据段被删除。

查询回滚段保留时长UNDO_RETENTION,默认为90秒。

超过90秒后,再来查询v$purge等PURGE回滚段视图,会发现此视图中的数据已经为空(回滚段已经被清理):

同时数据所占用的空间信息也被释放,如下所示:

三、总结

从上面测试可以看出:

1、CTAS方式创建表的同时并插入数据效率更高,比先创建表然后再插入数据要快。

2、TRUNCATE立即释放空间,drop和delete表的空间不立即释放,达梦按照undo_retention参数指定的时间强制保留,超过该时间后,空间立即释放。

3、严格来说,DDL会生成少量的UNDO回滚信息,这些回滚信息是对系统表的修改而产生的回滚记录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/4868.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++11:可变参数模板/lambda表达式

1.可变参数模板 C11的新特性可变参数模板能够让我们创建可以接受可变参数的函数模板和类模板,相比C98和C03,类模板和函数模板中只能含固定数量的模板参数,可变参数模板无疑是一个巨大的改进。可是可变参数模板比较抽象,因此这里只…

vue路由守卫死循环及路由守卫使用

当前业务要求: 通过判断本地sessionstorge判断当前是否需要登陆页面 问题场景:用户登陆进入页面内部,点击退出登录,清除本地用户信息,页面跳转至登陆页面,使用浏览器的回退可以正常返回至项目内部。需要改…

kettle开发篇-更新-Day38

目录 前言: 一、更新组件介绍 1.1界面 1.2废话介绍 1.3重点解释 二、应用案例 2.1转换效果 2.2转换简介 三、总结 前言: 前面我们通过oracle的索引来处理单表超1亿的数据量表的查询问题,通过针对主键,展示的维度做多套索引…

如何使用码匠连接 GaussDB

目录 在码匠中集成 GaussDB 在码匠中使用 GaussDB 关于码匠 GaussDB 是华为推出的一个高性能、高可靠、高安全的分布式数据库管理系统。它采用多活架构,支持全球数据同步,可实现数据的实时同步和容灾备份,可满足不同业务场景下的数据管理…

《钢琴调律原理及应用》 笔记

【第一章 绪论】第一节 钢琴调律的概念 美国人威廉布雷德怀特于 1917 年发表了世界上第一部关于钢琴调律理论与技术的著作,书名为《钢琴调律与相关技术》 福岛琢郎于1950年发表一部名为《钢琴的构造调律修理》的专著 80年代初,在沈阳音院任教的张琨先生…

蓝桥杯正确的解题姿势

在做算法题的过程中最忌讳的就是上来就一顿乱敲,一开始我就是这样,但随着不断的刷题和老师的指导,总结了自己的刷题方法 示例题目 三角回文数 问题描述 对于正整数 n, 如果存在正整数 k使得 n123...kk(k1)/2 , 则 n 称为三角数。例如, 66066 …

弱监督实例分割 Box-supervised Instance Segmentation with Level Set Evolution 论文笔记

弱监督实例分割 Box-supervised Instance Segmentation with Level Set Evolution 论文笔记一、Abstract二、引言三、相关工作3.1 基于 Box 的实例分割3.2 基于层级的分割四、提出的方法4.1 图像分割中的层级模型4.2 基于 Box 的实例分割在 Bounding Box 内的层级进化输入的数据…

CentOS7+LAMP+DVWA靶机搭建

一、什么是DVWA Damn Vulnerable Web Application (DVWA)(译注:可以直译为:"该死的"不安全Web应用程序),是一个编码差的、易受攻击的 PHP/MySQL Web应用程序。 它的主要目的是帮助信息安全专业人员在合法的环境中,练习…

【自动化】selenium配置步骤 | 备份本地资源

1、安装jdk 2、设置环境变量 .1、CLASSPATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar .2、JAVA_HOME C:\Program Files\Java\jdk1.8.0_231 .3、PATH 新增 %JAVA_HOME%\bin 3、安装chrome 版本:85.0.4183.83 4、禁用chrom…

AOP配置管理

AOP配置管理4,AOP配置管理4.1 AOP切入点表达式4.1.1 语法格式4.1.2 通配符4.1.3 书写技巧4.2 AOP通知类型4.2.1 类型介绍4.2.2 环境准备4.2.3 通知类型的使用前置通知后置通知环绕通知基本使用注意事项返回后通知异常后通知通知类型总结知识点1:After知识…

基于SpringBoot+SpringCloud+Vue前后端分离项目实战 --开篇

本文目录前言做项目的三大好处强强联手(天狗组合)专栏作者简介专栏的优势后端规划1. SpringBoot 和 SpringCloud 的选择2. Mybatis 和 MybatisPlus 和 JPA 的选择3. MySQL 和 Mongodb 的选择4. Redis 和 RocketMQ5. 后端规划小总结后端大纲提前掌握的知识点一期SpringBoot二期S…

经典文献阅读之--LOCUS 2.0(LiDAR为中心的多传感器LSLAM)

0. 简介 在20年DARPA地下挑战赛中CoSTAR队伍提出了LOCUS这个深度学习模块,在两年后LOCUS2.0出世,LOCUS 2.0包括一种新的基于法线的广义迭代最近点(GICP)公式,该公式减少了点云对齐的计算时间,一种自适应体…

PowerTCP Sockets for .NET 6.1.5 Crack

PowerTCP Sockets for .NET PowerTCP Sockets for .NET 包含易于使用的 TCP 和 UDP 组件,可帮助您创建 Internet 客户端应用程序,只需几行代码和方便的事件。Ping 组件使用 ICMP、UDP 和 TCP 启用服务器验证,而跟踪组件执行异步跟踪路由以实…

三、数据链路层

(一)纠错与检错1、奇偶校验码(再研究下,原理知道,具体过程无法重现)分为奇校验和偶校验,奇偶校验位在首部或尾部,奇偶校验满信息位奇偶校验位(1)原理&#xf…

多线程 (七) 阻塞队列的使用及其实现

🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!人生格言:当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔🦾&am…

科大奥瑞物理实验——交流电桥

实验名称:交流电桥 1. 实验目的: 掌握电桥平衡原理、平衡条件;理解交流电桥构造,熟悉交流电桥平衡方法;分析平衡过程中各桥臂调节顺序,判断最佳平衡点;理解复阻抗概念,电桥平衡时复…

虚拟机centos7配置Hadoop单节点伪分布配置教程

系列文章目录 centos7配置静态网络常见问题归纳_张小鱼༒的博客-CSDN博客 centos7克隆虚拟机完成后的的一些配置介绍_张小鱼༒的博客-CSDN博客 文章目录 目录 系列文章目录 文章目录 前言 一、前期准备 二、Hadoop介绍 2.1、Apache Hadoop 2.2、Cloudera Hadoop 2.3…

基于Vision Transformer的图像去雾算法研究与实现(附源码)

基于Vision Transformer的图像去雾算法研究与实现 0. 服务器性能简单监控 \LOG_USE_CPU_MEMORY\文件夹下的use_memory.py文件可以实时输出CPU使用率以及内存使用率,配合nvidia-smi监控GPU使用率 可以了解服务器性能是否足够;运行时在哪一步使用率突然…

第一个vue-cli项目

第一个vue-cli项目 12.1、什么是vue-cli vue-cli官方提供的一个脚手架,用于快速生成一个vue的项目模板;   预先定义好的目录结构及基础代码,就好比咱们在创建Maven项目时可以选择创建一个骨架项目,这个估计项目就是脚手架&…

编写一个函数,输入一个日期,计算其距年底的时间

--编写一个函数,输入一个日期,计算其距年底的时间 create or replace function f_end(i_date varchar2) return number is/*声明四个变量,v_end:存放输入的日期的年底日期 v_date:存放经过转化为日期型的输入字符串 v_minus:存放两个日期之差…