oracle资料库
shell脚本命令
MySQL资料
Linux 安装mariadb
MySQL安装部署四种安装方式
Linux操作系统彻底删除MySQL——详细步骤
windows 下安装Mysql
MySQL常用命令
sqlite
Oracle
运行情况查询汇总
通过命令行导出AWR报告
alert日志存放位置
归档日志查看与清理
oracle数据库体系结构
SPFILE的搜索顺序
备份还原
RMAN备份
数据泵备份
EXP/IMP
数据库自动任务
oracle部署安装
Linux下安装oracle11G
windows下安装数据库
数据库维护篇
SGA/PGA修改
单独BUG参数修改
常用参数修改命令
数据库异常情况典型
用户密码管理
TNS详解及常见错误码
SQL语句
练习题
练习二
oracle 数据库去重复
多行字段拼接成一列 (listagg函数)
判断是否为数字
数据库空间管理
lob字段压缩
碎片整理
临时表空间
临时表空间管理
Oracle服务脱机迁移手册
windows 磁盘空间不足 转移数据文件
常用函数
发现患者是否有特殊字符
获取汉字首拼
通过关键词截取病历数据
转入转出文书记录获取数据
blob转varchar
触发器
阻断休眠
性别被置空
姓名无故更新
健康检测脚本
数据闪回
Redis
Redis可视化工具
Toad使用技巧
本文档使用 MrDoc 发布
-
+
首页
碎片整理
**碎片整理的方法:** - 1)通过exp/imp或者expdp/impdp,导出/导入表 - 2)alter table move - 3)表在线重定义 # SHRINK SPACE 原理: SHRINK SPACE的实质就是在表的内部通过一个事务,获取表的锁定,再不断地DELETE和INSERT移动数据行。备注(where 条件为rowid) 步骤: 1)开启行移动。表空间管理方式必须是ASSM模式。 `ALTER TABLE <table_name> ENABLE ROW MOVEMENT` 2) 执行压缩。 在此阶段,行将尽可能移动到段的左侧部分。行将在内部移动,以避免锁定问题。 `ALTER TABLE <table_name> SHRINK SPACE COMPACT` 3)启动收缩。将调整高水位标记(HWM),并释放未使用的空间 `ALTER TABLE <table_name> SHRINK SPACE` 4)回收相关索引空间(可选) `ALTER TABLE <table_name> SHRINK SPACE CASCADE` 弊端: SHRINK SPACE是通过事务来内部处理表的数据,同样会持有锁,操作期间会影响表的正常使用。 SHRINK SPACE的实质是一系列的DELETE和INSERT操作,会参数大量的REDO日志,会造成LGWR进程的压力,可能会造成归档空间的不足。 适用场景: 容量小或者压力业务并发压力比较小的表 # ALTER TABLE MOVE ## 原理: 先将目标表移动到一个中转的表空间,在移动回来,并重建所有相关索引。对表会添加一个排他锁。 当表发生移动的时候,其上的数据物理结构也全部发生了变化,直接导致数据行的ROWID发生了变化。而索引则是一个ROWID的”管理中心”,ROWID变了,索引也就变得不可用UNUSABLE。 需要重建索引 ## 步骤: 1)移动表 ALTER TABLE 【表名】move tablespace【中转表空间】 ALTER TABLE 【表名】move tablespace 【原表空间】 3)重建目标索引 alter index 【索引】rebuild online 弊端: 对表添加排他锁,造成离线时间 场景: 命令简单,容量小或者压力业务并发压力比较小的表 # 在线重定义 原理: 步骤: 1)备份重定义表的统计信息
孙端己
2024年7月17日 17:36
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码