Oracle 中 SHRINK 与 MOVE 操作的比较

news2025/5/24 13:57:35

Oracle 中 SHRINK 与 MOVE 操作的比较

在 Oracle 数据库中,SHRINKMOVE 都是用于重组表和索引以减少空间碎片的重要操作,但它们在实现方式和适用场景上有显著区别。

SHRINK 操作

基本语法

ALTER TABLE table_name SHRINK SPACE [COMPACT] [CASCADE];

特点

  1. 在线操作:可以在表被使用时执行(DML操作仍可进行)
  2. 渐进式:可以分阶段执行(先COMPACT再最终收缩)
  3. 仅适用于ASSM表空间:自动段空间管理(ASSM)的表空间才支持
  4. 不改变存储参数:不会改变表的INITIAL或NEXT存储参数
  5. 需要行移动:需要启用行移动 ALTER TABLE table_name ENABLE ROW MOVEMENT;

优点

  • 对业务影响小
  • 可以回收高水位线(HWM)以上的空间
  • 操作可中断,不会回滚已完成的压缩

缺点

  • 不能改变表的物理存储属性
  • 不能将表移动到其他表空间

MOVE 操作

基本语法

MOVE
   [ filter_condition ]
   [ ONLINE ]
   [ segment_attributes_clause ]
   [ table_compression ]
   [ index_org_table_clause ]
   [ { LOB_storage_clause | varray_col_properties }... ]
   [ parallel_clause ]
   [ allow_disallow_clustering ]
   [ UPDATE INDEXES
     [ ( index { segment_attributes_clause
               | update_index_partition }
         [, index { segment_attributes_clause
                  | update_index_partition } ]...
       )
     ]
   ]
ALTER TABLE table_name MOVE [TABLESPACE tablespace_name] [ONLINE];

特点

  1. 离线操作:默认会锁定表(除非使用ONLINE选项,12C+)
  2. 完全重组:重建表结构,重置高水位线
  3. 可跨表空间:可以移动到不同的表空间
  4. 改变物理存储:可以改变存储参数
  5. 需要重建索引:移动后相关索引会失效,需要重建

优点

  • 能彻底重组表,性能提升明显
  • 可以改变表的物理存储位置和参数
  • 适用于所有表空间类型

缺点

  • 对业务影响较大(除非使用ONLINE选项)
  • 需要额外处理索引重建
  • 不能分阶段执行

关键区别对比

特性SHRINKMOVE
操作类型在线默认离线(可在线)
空间回收回收HWM以上空间完全重置HWM
表空间限制仅ASSM表空间所有表空间
表空间移动不支持支持
存储参数不改变可改变
索引处理自动维护需要重建
适用场景日常维护大规模重组/迁移

使用建议

  1. 日常空间维护:使用SHRINK进行定期空间回收
  2. 性能优化:当表严重碎片化时使用MOVE彻底重组
  3. 表空间迁移:必须使用MOVE操作
  4. 关键业务表:考虑使用MOVE ONLINE减少影响

注意事项

  • 两种操作都会产生大量重做日志(redo),应在低峰期执行
  • 操作前建议备份重要数据
  • 大表操作可能需要考虑分批进行
  • 监控UNDO表空间使用情况,避免操作失败

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

受不了github的网络限制了,我开源了一个图床工具 gitee-spring-boot-starter

嗨嗨嗨~ 我老马又又来了!!!上次写了一篇我开源了一款阿里云OSS的spring-boot-starter,然后买的资源包到期了,后面又想白(开)嫖(源)的路子,首先想到了使用gith…

2025年医美行业报告60+份汇总解读 | 附 PDF 下载

原文链接:https://tecdat.cn/?p42122 医美行业在消费升级与技术迭代的双重驱动下,已从边缘市场逐步走向主流。数据显示,2024 年中国医美市场规模突破 3000 亿元,年复合增长率达 15%,但行业仍面临正品率不足、区域发展…

API自动化与持续集成核心实战知识点!

想象一下,你开发的API像一辆跑车,性能强劲,但你如何确保它每次启动都完美无缺?或者你的代码像一道复杂的菜肴,如何保证每次更新都不破坏原有味道?答案就是API自动化测试与持续集成!SuperTest让你…

基于SpringBoot+Vue的社区医院信息平台设计与实现

项目背景与概述 随着医疗健康信息化的发展,社区医院的管理逐渐由传统的手工模式转向信息化管理。为了提高医院的管理效率、减少人工操作、提升服务质量,开发一个高效且实用的社区医院信息平台显得尤为重要。本系统基于Spring Boot框架与MySQL数据库设计…

C++ 中的暴力破解算法

一、暴力破解算法原理​ 暴力破解算法,顾名思义,就是通过穷举所有可能的解,逐一验证,直到找到满足条件的解。它不依赖复杂的逻辑推导或数学优化,而是依靠计算机强大的计算能力,将所有可能的情况都尝试一遍…

率先实现混合搜索:使用 Elasticsearch 和 Semantic Kernel

作者:来自 Elastic Enrico Zimuel 及 Florian Bernd 混合搜索功能现在已在 .NET Elasticsearch Semantic Kernel 连接器中提供。阅读这篇博客文章了解如何开始使用。 Elasticsearch 已原生集成业内领先的生成式 AI 工具和服务提供商。欢迎观看我们的网络研讨会&…

基于SpringBoot的网上租赁系统设计与实现

项目简介 本项目是基于 Spring Boot Vue 技术栈开发的 网上租赁系统。该系统通过前后端分离的架构,提供用户和管理员两种角色的操作权限,方便用户进行商品租赁、订单管理、信息查询等操作,同时也为管理员提供了商品管理、用户管理、订单管理…

AI浪潮下,第五消费时代的商业进化密码

解锁 AI 与第五消费时代 在时代的长河中,消费浪潮的更迭深刻地影响着商业的格局。当下,我们正处于第五消费时代,这个时代有着鲜明的特征,如老龄化、单身化趋势日益显著,社会逐渐步入低欲望、个性化与共享化并行的阶段 。随着人工智能技术的飞速发展,它在商业领域的渗透也…

Jouier 普及组十连测 R4

反思 本次比赛到时没有什么细节错误&#xff0c;不过代码思路不好所以分数也不是很高。 T1 代码思路 看题意&#xff0c;发现数据范围不大&#xff0c;直接动用码力暴力即可。 代码 #include<bits/stdc.h> using namespace std;vector<vector<int> > a(110…

bi平台是什么意思?bi平台具体有什么作用?

目录 一、BI平台是什么意思 1. 具体内涵 2. 主要构成 二、BI 平台具体有什么作用 1. 提供全面的数据洞察 2. 支持快速决策 3. 优化业务流程 4. 提升企业协作 三、BI 平台的应用场景 1. 金融行业 2. 零售行业 3. 制造行业 4. 医疗行业 总结 “每天在海量数据中反复…

Redis从入门到实战 - 原理篇

一、数据结构 1. 动态字符串SDS 我们都知道Redis中保存的key是字符串&#xff0c;value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。 不过Redis没有直接使用C语言中的字符串&#xff0c;因为C语言字符串存在很多问题&#xff1a; 获取字符串长…

26考研|高等代数:线性变换

前言 线性变换这一章节是考频较高的一部分&#xff0c;此部分涉及考点较多&#xff0c;涉及的考题也较多&#xff0c;学习线性变换时&#xff0c;应该注意搭建线性变换与矩阵之间的联系&#xff0c;掌握如何利用矩阵表示一个线性变换结构&#xff0c;同时介绍了最简单的线性变…

VSCode如何像Pycharm一样“““回车快速生成函数注释文档?如何设置文档的样式?autoDocstring如何设置自定义模板?

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 让VSCode拥有PyCharm级注释生成能力 📒🚀 实现方案🛠️ 备用方案📒 自定义注释文档格式样式 📒🔄 切换主流注释风格✨ 深度自定义模板🛠️ 类型提示与注释联动优化⚓️ 相关链接 ⚓️📖 介绍 📖 用PyCharm写P…

PCIe学习笔记(3)链路初始化和训练

PCIe学习系列往期文章 PCIe学习笔记&#xff08;1&#xff09;Hot-Plug机制 PCIe学习笔记&#xff08;2&#xff09;错误处理和AER/DPC功能 文章目录 链路训练概述Bit LockSymbol Lock (Gen1/2)Block Alignment (Gen3)Lane Polarity InversionLane ReversalLane-to-Lane De-ske…

Oracle 11g导出数据库结构和数据

第一种方法&#xff1a;Plsql 利用plsql可视化工具导出&#xff0c;首先根据步骤导出表结构&#xff1a; 工具(Tools)->导出用户对象(export user objects)。 其次导出数据表结构&#xff1a; 工具(Tools)->导出表(export Tables)->选中表->sql inserts(where语…

零基础设计模式——创建型模式 - 抽象工厂模式

第二部分&#xff1a;创建型模式 - 抽象工厂模式 (Abstract Factory Pattern) 我们已经学习了单例模式&#xff08;保证唯一实例&#xff09;和工厂方法模式&#xff08;延迟创建到子类&#xff09;。现在&#xff0c;我们来探讨创建型模式中更为复杂和强大的一个——抽象工厂…

解锁内心的冲突:神经症冲突的理解与解决之道

目录 一、神经症冲突概述 二、冲突的基本类型 三、未解决冲突的后果 四、尝试解决的途径 五、真正解决冲突 六、总结 干货分享&#xff0c;感谢您的阅读&#xff01; 人类的内心世界复杂多变&#xff0c;常常充满了各种冲突和矛盾。每个人在成长的过程中&#xff0c;都或…

Redisson读写锁和分布式锁的项目实践

解决方案:采用读写锁 什么是读写锁 Redisson读写锁是一种基于Redis实现特殊的机制,用于在分布式系统中协调对共享资源的访问,其继承了Java中的ReentrantReadWriteLock的思想.特别适用于读多写少的场景.其核心是:允许多个线程同时读取共享资源,但写操作必须占用资源.从而保证线…

SkyWalking高频采集泄漏线程导致CPU满载排查思路

SkyWalking高频采集泄漏线程导致CPU满载排查思路 契机 最近在消除线上服务告警&#xff0c;发现Java线上测试服经常CPU满载告警&#xff0c;以前都是重启解决&#xff0c;今天好好研究下&#xff0c;打arthas火焰图发现是SkyWalking-agent的线程采集任务一直在吃cpu&#xff…

【HarmonyOS 5】Map Kit 地图服务之应用内地图加载

#HarmonyOS SDK应用服务&#xff0c;#Map Kit&#xff0c;#应用内地图 目录 前期准备 AGC 平台创建项目并创建APP ID 生成调试证书 生成应用证书 p12 与签名文件 csr 获取 cer 数字证书文件 获取 p7b 证书文件 配置项目签名 配置签名证书指纹 项目开发 配置Client I…