Oracle 表数据段收缩示例

2024-06-05 23:12
文章标签 oracle 数据 示例 收缩

本文主要是介绍Oracle 表数据段收缩示例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Oracle 表数据段收缩示例

创建测试表
conn ahern/ahern
create table tab_test(code varchar2(20));

插入10000条数据到表中
declare
  intsize number;
begin
  for i in 1 .. 10000 loop
    insert into tab_test (code) values ('abcd');
    commit;
  end loop;
end;
/

查看该表占用的段空间大小
SQL> col segment_name for a20
SQL> select segment_name,bytes from user_segments where segment_name='TAB_TEST';

SEGMENT_NAME              BYTES
-------------------- ----------
TAB_TEST                 196608

删除表中数据
SQL> delete from tab_test;

已删除 10000 行。

SQL> commit;

提交完成。

再次查看该表占用的段空间大小,发现删除数据后段空间并没有得到释放
SQL> select segment_name,bytes from user_segments where segment_name='TAB_TEST';

SEGMENT_NAME              BYTES
-------------------- ----------
TAB_TEST                 196608

开启表的行移动
SQL> alter table tab_test enable row movement;

表已更改。

收缩段空间
SQL> alter table tab_test shrink space;

表已更改。

再次查看该表占用的段空间大小,空间已经释放
SQL> select segment_name,bytes from user_segments where segment_name='TAB_TEST';

SEGMENT_NAME              BYTES
-------------------- ----------
TAB_TEST                  65536
注意:从user_segments里面查询到的是段空间已经被释放,但是从 user_tables 或者 dba_tables 数据字典查询你会发现这里记录并未及时更新,因为需要等到下次数据库自动维护统计信息后才会更新,手动收集统计信息或者做表分析也可以更新里面的记录。
alter table table_name shrink compact/space; compact 将块中的数据放在一起,但不释放空闲空间,高水位也不会下降,支持DML操作。space 释放空闲空间,高水位下降,会锁定表不支持其它DML操作,对数据库性能影响比较大。

 

这篇关于Oracle 表数据段收缩示例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1034440

相关文章

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

Oracle查询表结构建表语句索引等方式

《Oracle查询表结构建表语句索引等方式》使用USER_TAB_COLUMNS查询表结构可避免系统隐藏字段(如LISTUSER的CLOB与VARCHAR2同名字段),这些字段可能为dbms_lob.... 目录oracle查询表结构建表语句索引1.用“USER_TAB_COLUMNS”查询表结构2.用“a

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

SQL Server 中的 WITH (NOLOCK) 示例详解

《SQLServer中的WITH(NOLOCK)示例详解》SQLServer中的WITH(NOLOCK)是一种表提示,等同于READUNCOMMITTED隔离级别,允许查询在不获取共享锁的情... 目录SQL Server 中的 WITH (NOLOCK) 详解一、WITH (NOLOCK) 的本质二、工作

MySQL CTE (Common Table Expressions)示例全解析

《MySQLCTE(CommonTableExpressions)示例全解析》MySQL8.0引入CTE,支持递归查询,可创建临时命名结果集,提升复杂查询的可读性与维护性,适用于层次结构数据处... 目录基本语法CTE 主要特点非递归 CTE简单 CTE 示例多 CTE 示例递归 CTE基本递归 CTE 结

Spring AI使用tool Calling和MCP的示例详解

《SpringAI使用toolCalling和MCP的示例详解》SpringAI1.0.0.M6引入ToolCalling与MCP协议,提升AI与工具交互的扩展性与标准化,支持信息检索、行动执行等... 目录深入探索 Spring AI聊天接口示例Function CallingMCPSTDIOSSE结束语

go动态限制并发数量的实现示例

《go动态限制并发数量的实现示例》本文主要介绍了Go并发控制方法,通过带缓冲通道和第三方库实现并发数量限制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录带有缓冲大小的通道使用第三方库其他控制并发的方法因为go从语言层面支持并发,所以面试百分百会问到