首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

删除多行后的Oracle 10g表大小

在Oracle 10g中,删除多行后的表大小并不会立即减小。这是因为Oracle数据库使用了Undo机制来支持事务的回滚和并发控制。当删除多行数据时,这些数据并不会立即从磁盘上删除,而是被标记为"已删除",并且相关的Undo信息会被保留。

删除多行数据后,表的大小不会立即减小,但是这些空间会被标记为可重用。当新的数据插入到表中时,Oracle会尽可能地重用这些空间,以减少磁盘的IO操作,提高性能。

然而,如果你希望立即减小表的大小,可以使用Oracle的表压缩功能。表压缩可以通过压缩重复的数据和使用更高效的存储结构来减小表的大小。你可以使用Oracle的COMPRESS关键字来创建一个压缩表,或者使用ALTER TABLE语句来压缩已有的表。

在云计算领域,腾讯云提供了多种与Oracle数据库相关的产品和服务,包括云数据库Oracle版、弹性MapReduce、云数据库灾备等。你可以通过访问腾讯云官方网站(https://cloud.tencent.com/)来了解更多关于这些产品的详细信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

解决sqlite删除数据或者表后,文件大小不变的问题

原因: sqlite采用的是变长纪录存储,当你从Sqlite删除数据后,未使用的磁盘空间被添加到一个内在的”空闲列表”中用于存储你下次插入的数据,用于提高效率,磁盘空间并没有丢失,但也不向操作系统返回磁盘空间...,这就导致删除数据乃至清空整个数据库后,数据文件大小还是没有任何变化,还是很大 解决方法有以下两种: 1、sqlite3中执行vacuum命令即可。...但是第二个方法同样有缺点,只会从数据库文件中截断空闲列表中的页, 而不会回收数据库中的碎片,也不会像VACUUM 命令那样重新整理数据库内容。...实际上,由于需要在数据库文件中移动页, auto-vacuum 会产生更多的碎片。而且,在执行删除操作的时候,也有那个.db-journal文件产生。...数据库中需要存储一些额外的信息以记录它所跟踪的每个数据库页都找回其指针位置。 所以,auto-vacumm 必须在建表之前就开启。在一个表创建之后, 就不能再开启或关闭 auto-vacumm。

2.1K20

总结Oracle删除表空间遇到的问题

问题1:删除表空间期间遭遇报错 ORA-29857 问题2:删除表空间期间遭遇 ORA-02429 问题3:表空间删除完毕,主机磁盘空间不释放 问题1:删除表空间期间遭遇报错 ORA-29857 删除表空间语句...要删除的表空间中的表有一个域索引,这个域索引在删除表空间前需要被删除掉。 域索引不能被创建在指定的表空间,对于域索引,DBA_INDEXES中的TABLESPACE_NAME列值总是空值。...with a table in the tablespace to be dropped can be identified from the following query: 要删除的与在这个表空间中的表相关的域索引可以通过下面的查询找出来...一旦你找出这些二级对象,你就可以删除它们然后再删除表空间。...问题2:删除表空间期间遭遇 ORA-02429 对于ORA-02429这个错误,MOS文档的描述也很清楚: Drop Tablespace Failed with ORA-02429: cannot

1K30
  • Oracle 误删除表的几种恢复方法

    在删除Oracle数据的时候不小心,把delete语句执行错了,把别的表给delete,而且还执行了commit!那么如何进行恢复呢,下面介绍几种恢复方法。...,再把查询到的数据复制到原来的表中。...第三种:其他 删除表后,可以采用如下操作:在 查询表user_recyclebin最近操作过的表名称,然后用闪回(只能用于10G及以上版本)。...select * from user_recyclebin; FLASHBACK TABLE TABLE_NAME TO BEFORE DROP; 如果是删了或修改里面的数据,可以先建立一个快表将删除修改之前状态的数据找回到这个表中...究竟是哪个词其实对我们来说并不是最重要的,重要的是我们知道 SCN 是 Oracle 内部的时钟机制, Oracle 通过 SCN 来维护数据库的一致性,并通过SCN 实施 Oracle 至关重要的恢复机制

    1.8K20

    如何恢复oracle中误删除表(drop掉的)?

    恢复表: flashback table test_drop to before drop; 或者: flashback table "BIN$b+XkkO1RS5K10uKo9BfmuA==$0..." to before drop; 注意: 必须9i或10g以上版本支持,flashback无法恢复全文索引 详解: 以下是一个不该发生却经常发生的情况:用户删除了一个非常重要的表 ― 当然是意外地删除...(在某些时候,这个不幸的用户可能就是 DBA!) Oracle9i Database 推出了闪回查询选项的概念,以便检索过去某个时间点的数据,但它不能闪回 DDL 操作,如删除表的操作。...唯一的恢复方法是在另一个数据库中使用表空间的时间点恢复,然后使用导出/导入或其他方法,在当前数据库中重新创建表。...这一过程需要 DBA 进行大量工作并且耗费宝贵的时间,更不用说还要使用另一个数据库进行克隆。

    2.1K20

    如何恢复oracle中误删除表(drop掉的)?

    恢复表: flashback table test_drop to before drop; 或者: flashback table "BIN$b+XkkO1RS5K10uKo9BfmuA==$0"...to before drop; 注意: 必须9i或10g以上版本支持,flashback无法恢复全文索引 详解: 以下是一个不该发生却经常发生的情况:用户删除了一个非常重要的表 ― 当然是意外地删除...(在某些时候,这个不幸的用户可能就是 DBA!) Oracle9i Database 推出了闪回查询选项的概念,以便检索过去某个时间点的数据,但它不能闪回 DDL 操作,如删除表的操作。...唯一的恢复方法是在另一个数据库中使用表空间的时间点恢复,然后使用导出/导入或其他方法,在当前数据库中重新创建表。...这一过程需要 DBA 进行大量工作并且耗费宝贵的时间,更不用说还要使用另一个数据库进行克隆。

    1.6K30

    记一次删除大文件后磁盘大小异常的故障

    起因 日前,收到监控系统邮件告警,告知MySQL备份盘磁盘可用率不足20%,故而通过SSH远程上去,发现是因为保留的备份数据副本(全备)过多的原因,因为手动删除了较早的全备副本,然后,惊奇的是,几分钟后磁盘可用比仍居高不下...处理过程 检查磁盘相关信息 查看磁盘空间大小,我们发现输出的备份盘已用2.2T,可用0 [root@bogon bak]# df -HT Filesystem Type Size...,输出显示使用中的备份盘大小为1.0T [root@bogon bak]# du -sh /bak/ 1.0T /bak/ 查看异常进程 lsof被誉为Unix/Linux界的瑞士军刀,其用于查看哪些文件被哪些进程所打开.../import.log (deleted) oracle 29336 oracle 35u REG 253,2 1014089334784...bak /dev/sr0 iso9660 3.9G 3.9G 0 100% /media/RHEL-6.8 Server.x86_64 总结 当进程意外被杀死,或临时删除较大体积的文件时

    93720

    Oracle库Delete删除千万以上普通堆表数据的方法

    需求:Oracle数据库delete删除普通堆表千万条历史记录。...直接删除的影响: 1.可能由于undo表空间不足从而导致最终删除失败的问题; 2.可能导致undo表空间过度使用,影响到其他用户正常操作。 改进方案:每删除1k行就提交一次。...commit; end if; end loop; commit; end; 方法1中变量说明: [del_cursor] 游标名 [table_name] 你要删除数据的表名...[time_stamp] 你用作过滤条件的表的时间字段名称 Note 两种方法的核心的思路都是把一个大事物拆分成了若干个小事物,无论采用哪种方法,都建议先在对应的测试环境中测试后再考虑是否可以在实际生产使用...顺便说一句,这样的大表应该要综合考虑下是否可以改造成分区表。

    1.9K20

    oracle--二维表的操作创建修改删除

    oracle学习内容 oracle的管理系统学习 oracle的数据管理学习 oracle的用户管理 oracle二维表管理 创建表和字段讲解 --创建表学习 1、 创建表的基本语句...会根据存储的数据自动增长大小,varchar2(存储上限) char类型:字符类型,用来声明存储字符的字符。会开辟指定大小的内存来存储数据。...区别1:char的存储效率高于varchar2 区别2:char是开辟指定大小的内存空间,varchar2是根据数据大小来开辟空间的大小 date类型:存储日期类型 第二节课...修改字段名 alter table student rename column sphone to phone; 删除字段...新的表名 rename student to stu rename stu to student 删除表 drop table 表名 drop table

    52510

    【DB笔试面试469】Oracle中如何删除表中重复的记录?

    题目部分 Oracle中如何删除表中重复的记录? 答案部分 平时工作中可能会遇到这种情况,当试图对表中的某一列或几列创建唯一索引时,系统提示ORA-01452 :不能创建唯一索引,发现重复记录。...这个时候只能创建普通索引或者删除重复记录后再创建唯一索引。 重复的数据可能有这样两种情况:第一种是表中只有某些字段一样,第二种是两行记录完全一样。...删除重复记录后的结果也分为两种,第一种是重复的记录全部删除,第二种是重复的记录中只保留最新的一条记录,在一般业务中,第二种的情况较多。...1、删除重复记录的方法原理 在Oracle中,每一条记录都有一个ROWID,ROWID在整个数据库中是唯一的,ROWID确定了每条记录是在Oracle中的哪一个数据文件、块、行上。...2、删除重复记录的方法 若想要删除部分字段重复的数据,则使用下面语句进行删除,下面的语句是删除表中字段1和字段2重复的数据: DELETE FROM 表名 WHERE (字段1, 字段2) IN (

    2.8K30

    104-oracle大表删除重复记录的几种方法

    如果是小表,随便怎么折腾都行; 如果是大表(至少1千万条记录以上,或者占用10G以上空间), 我们可能需要想办法加快这个速度 , 这时可以参考下面方法: 要求: 删除t1表 object_name字段上的重复记录...先查表的总记录数和需要删除的重复记录数,dup_cnt就是需要删除的重复记录数: --如果是多个字段去重,一起写到 group by 后面 select /*+ parallel(8) */...如果不想锁表,可以去掉enable_parallel_dml hint. 这个方法对删除少量重复记录也是可用的....注意: 如果表上索引比较多, 消耗时间会更长,如果业务允许,可以先禁用索引: alter index xxx unusable; 删除操作完成后再重建索引: alter index xxx rebuild...下面的方法3会把大事务拆分. 3.可以把大事务拆分, 比如拆分成10次: 把要删除记录的rowid保存到临时分区表, 然后逐个批次执行: --创建临时表分区表保存待删除rowid及对应的批次: --

    70320

    针对mysql delete删除表数据后占用空间不变小的问题

    开发环境 MySQL 前言 物流规则匹配日志表记录订单匹配规则相关日志信息,方便管理员维护和查阅不匹配的订单,四个月时间,该日志表数据就有174G,当前,这么大的数据量,不仅对数据库造成了很大的负载压力...但是短期内,还需要数据库中的部分日志记录,故而有了下面的删除记录、优化表操作。 日志表大小一览 表本身有六七百万条数据,从六七百万删到五百多万,发现数据占用空间大小一点也没变,如下图所示。...网上查到需要释放删除了的数据占用的空间、也就是优化表或碎片整理,使用到的命令是:OPTIMIZE TABLE tableName。...,都不是真删除,只是MySQL给记录加了个删除标识,自然这样操作后表数据占有空间也不会变小了 注意:DELETE FROM ueb_logistics_rule_logs; 这条sql语句执行后,就清空了表数据...解决方法 主要就是执行下面三条sql语句(轮询删除delete,避免一次性删除数据太多造成MySQL负载崩溃,另外数据量大的时候需要等待网站访问流量小的时候执行) DELETE FROM ueb_logistics_rule_logs

    1.8K21

    在Oracle中,如何正确的删除表空间数据文件?

    DROP DATAFILE 可以使用如下的命令删除一个表空间里的数据文件: ALTER TABLESPACE TS_DD_LHR DROP DATAFILE n; --n为数据文件号 ALTER TABLESPACE...③ 不能删除一个表空间中第一个添加的数据文件,否则会报错,形如“ORA-03263: cannot drop the first file of tablespace TS_DD_LHR”。...PURGE;”或者在已经使用了“DROP TABLE XXX;”的情况下,再使用“PURGE TABLE "XXX表在回收站中的名称";”来删除回收站中的该表,否则空间还是不释放,数据文件仍然不能DROP...需要注意的是,据官方文档介绍说,处于READ ONLY状态的表空间数据文件也不能删除,但经过实验证明,其实是可以删除的。...OS级别删除了数据文件后的恢复 若使用了“ALTER DATABASE DATAFILE N OFFLINE DROP;”命令,则并不会删除数据文件,这个时候可以先ONLINE后再用“ALTER TABLESPACE

    7.8K40

    Oracle-使用切片删除的方式清理非分区表中的超巨数据

    ---- Step2.2: 连接数据库,获取分片 使用oracle用户登录主机,在/oracle目录下通过sqlplus登录 如果数据量过大,可以分片多一些,少量多次删除 artisandb:[/oracle...<99999999; COMMIT; 实际在很大的表上这样删除数据是不理想也不可行的,几点理由: 1....rowid_chunk.sql的脚本是根据表段的大小均匀地分割成指定数目的区域,试想当一些要更新或者删除的历史数据集中分布在segment的某些位置时(例如所要删除的数据均存放在一张表的前200个Extents...中),因为脚本是根据大小均匀分割区域的,所以某些区域是根本没有我们所要处理的数据的,由这些区域构造出来的DML语句都是无意义的....Oracle在版本11.2中引入了DBMS_PARALLEL_EXECUTE 的新特性来帮助更新超大表

    1.4K20

    Oracle 表空间创建标准(二)

    这是我参与「掘金日新计划 · 8 月更文挑战」的第18天,点击查看活动详情 >> Oracle 表空间创建标准(二) 2.5 为lob字段单独创建表空间 3....表空间管理 在Oracle体系中,一个数据库实例可以有多个表空间; 默认的smallfile表空间可以有多个数据文件,单个数据文件最大为32G; 数据文件可以设置初始化大小,也可以设置自动扩展,扩展最大即为...\ 3.1 表空间创建 create tablespace tbs_name datafile ``'+DATA01' size 10G AUTOEXTEND on MAXSIZE 30G ; 由于oracle...; Oracle 10G R2 之后版本中 可以删除某个空的数据文件 此操作慎用 3.4 删除表空间 drop tablespace tbs_name  including contents and...一个临时表空间可以被多个用户所使用,在临时表空间中创建的段叫做"临时段",oracle只会为一个实例创建一个临时段,这个临时段被实例中的所有排序操作共享使用,但是临时段每个区只能由一个事务使用。

    1.1K50

    通过openpyxl的delete_rows删除了1000多行,但结果表的话这些序号并没有缩减?(文末赠书)

    各位大佬想请教下:原来我的表格序号为2800多行,通过openpyxl的delete_rows 删除了1000多行,但结果表的话这些序号并没有缩减 导致显出一大片的空白行,请问这个有什么方法可以处理吗?...给了一个代码,如下所示: from openpyxl import load_workbook # 打开Excel文件 workbook = load_workbook('111.xlsx') # 选择工作表...worksheet = workbook['Sheet1'] # 替换'Sheet1'为实际的工作表名称 # 删除单个行号为5的行,连同格式一起删除 worksheet.delete_rows(5)...# 删除行号从3到7的行(包括行号3和7),连同格式一起删除 worksheet.delete_rows(3, 7) # 保存更新后的Excel文件 workbook.save('222.xlsx...这篇文章主要盘点了一个Python自动化办公Excel列删除处理的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

    31820

    MySQL InnoDB 共享表空间和独立表空间

    一、基本概念 共享表空间:Innodb的所有数据保存在一个单独的表空间里面,而这个表空间可以由很多个文件组成,一个表可以跨多个文件存在,所以其大小限制不再是文件大小的限制,而是其自身的限制。...共享表空间的缺点 所有的数据和索引存放到一个文件,虽然可以把一个大文件分成多个小文件,但是多个表及索引在表空间中混合存储,当数据量非常大的时候,表做了大量删除操作后表空间中将会有大量的空隙,特别是对于统计分析...共享表空间分配后不能回缩:当出现临时建索引或是创建一个临时表的操作表空间扩大后,就是删除相关的表也没办法回缩那部分空间了(可以理解为oracle的表空间10G,但是才使用10M,但是操作系统显示mysql...的表空间为10G),进行数据库的冷备很慢; 四、独立表空间的优缺点 独立表空间的优点 每个表都有自已独立的表空间,每个表的数据和索引都会存在自已的表空间中,可以实现单表在不同的数据库中移动。...空间可以回收(除drop table操作处,表空不能自已回收)Drop table操作自动回收表空间,如果对于统计分析或是日值表,删除大量数据后可以通过:alter table TableName engine

    4.1K30

    删除数据库表分区后,索引不可用(失效)的解决方案

    业务背景 由于业务系统中的常用表存储的数据量过大(6.5 亿条记录,合共 4.8TB 大小),使用 Oracle 数据库查询效率较低,对业务的使用造成了一定的影响。...与业务人员及系统厂商商议后,决定在系统生产环境中进行 Oracle 的 housekeep(数据清理)操作,将相关业务表当前时点 90 天以前的数据删除,并将其数据的生命周期配置为 90 天(即只保留...删除尚存表分区中时间戳在 90 天以前的数据:delete 创建过渡表用于删除若干张表的整表数据:create 以重命名的方式删除若干张表的整表数据(将若干张原表重命名,再将过渡表重命名为原表名):rename... REBUILD [ONLINE]; 方案可行性分析:此方案的缺点是在下一次对分区表进行分区删除后,索引状态又会变为不可用,需要添加相应语句重建索引。...分区表索引失效的情况 除了手动将索引置为无效外,分区表的索引在一些分区 DDL 操作后也会变成不可用的失效状态。那么哪些操作会让分区表的索引失效,哪些操作不会呢?

    2.9K11
    领券