首页 > 数据库 >ORACLE delete 表空间释放

ORACLE delete 表空间释放

时间:2023-01-05 16:23:25浏览次数:62  
标签:释放 -- 数据 cux test ORACLE data delete

--1、创建测试表

create table cux.cux_test_data as

select * from GL_JE_HEADERS;

 

--2、查看数据条数

select count(1) from cux.cux_test_data;

 

 

--3、查看区块大小

SELECT segment_name

      ,extents

      ,blocks

      ,initial_extent  

FROM   dba_segments

WHERE  segment_name = 'CUX_TEST_DATA';

 

  

 

--4、删除表,采用truncate方式

truncate table cux.cux_test_data;

 

--查看数据块大小

SELECT segment_name

      ,extents

      ,blocks

      ,initial_extent  

FROM   dba_segments

WHERE  segment_name = 'CUX_TEST_DATA';

 

  

由此可见truncate会清除表所占数据块的大小;

 

--5、删除表,采用delete方式

  首先对测试表进行重新插入操作,查得数据块大小如下:

 

执行删除操作:

delete from cux.cux_test_data;

再次查询表所占数据块大小如下:

可看出,所占数据块并没有变动;

 

--当delete完数据之后,再往测试表中插入100万条数据,再次查询数据块大小如下:

发现跟删除前一样,也就是说当delete相关的数据之后,再插入数据如果比删之前的数据小,则表空间分布不会变;当插入的数据比删之前多时,才会增加数据块大小;

 

--6、采用SHRINK和MOVE方式去收缩表空间

ALTER TABLE cux.cux_test_data MOVE;  --降低水位线,释放表空间

注意:alter table move命令可以释放空间,该操作期间会锁表;

而且会导致索引失效,如果该表有索引,还需要进行索引重建操作,重建索引脚本如下:

ALTER INDEX XXX REBUILD ONLINE;  --重建索引

 

 

alter table cux.cux_test_data enable row movement; --启用行迁移

alter table cux.cux_test_data shrink;--降低水位线

 

上述两步种方式收缩完之后,表空间已释放

 

 

结论:

1、TRUNCATE删除表会直接释放表空间;

2、DELETE删除表不会释放表空间,若要释放,可采用SHRINK和MOVE方式进行收缩。

 

转载于

ORACLE数据库之大数据量TRUNCATE和DELETE操作对表空间的影响_ITPUB博客

标签:释放,--,数据,cux,test,ORACLE,data,delete
From: https://www.cnblogs.com/zzc1320357166/p/17027910.html

相关文章

  • [Oracle19C 数据库管理] 初始化参数
    初始化参数文件默认情况下,初始化参数文件保存在$ORACLE_HOME/dbs目录中。初始化参数分为SPFILE和Pfile两种。SPFILE(ServerParameterFile)二进制文件,可以由数......
  • Oracle nfs集中备份替代NBU
    配置NFShttps://www.linuxprobe.com/basic-learning-12.htmlORACLE各节点挂载nfsmount -tnfs4-ominorversion=1,rsize=1048576,wsize=1048576,hard,timeo=600,retr......
  • 6.Oracle的Hints
    1.Oracle的Hints是什么?Hints是一种机制,用来告诉优化器按照我们告诉它的方式生成执行计划。在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中......
  • Oracle 最大打开游标错误/最大打开游标错误
    概述当你在Oracle中出现“MaxOpenCursor”错误时,要找出系统的哪个sql没有关闭是一件非常困难的事情。如果您在java中使用preparedstatement,关闭您的结果集是不够......
  • Huge CRF File Size Oracle RAC Environment
    EnvironmentOracleLinux(6.xor7.x)Oracle11g(RACorSTANDALONE) SymptomsOracleGRID_HOMEsizeishuge$GRID_HOME/crf/foldersizeishugeForea......
  • Oracle JDBC 连接的几种方式
    OracleJDBC连接的几种方式jdbc连接oraclerac数据库的写法:1、方法之一datasource.jdbcUrl=jdbc:oracle:thin:@//192.168.1.43:1521/orcl注意是=号后面的内容。其中orcl......
  • Oracle的start with connect by prior
    oracle的startwithconnectbyprior是根据条件递归查询"树",分为四种使用情况:第一种:查询结果自己所有的后代节点(包括自己)startwith子节点ID='...'connectbyprior......
  • [Oracle19C 数据库管理] 启动和停止Oracle数据库
    数据库启动的三个阶段startupnomount数据库根据初始化文件启动实例,分配内存给系统全局区SGA,并启动所有的后台进程。打开alertlog和tracefile。这个阶段实例会启动......
  • 5.Oracle的优化器
    1.oracle的优化器优化器(optimizer)是oracle数据库内置的一个核心子系统。优化器的目的是按照一定的判断原则来得到它认为的目标SQL在当前的情形下的最高效的执行路径,也......
  • Oracle存储过程详解(引用)+补充(转) dbms_output包 good
    执行存储过程时,execute和call的区别 EXECisasqlpluscommandthatputitsargumentasananonymouspl/sqlblock:'EXECxxx'istransformedto'BEGINxxx;END;'......