Oracle通过move表来整理碎片操作步骤

2024-03-12 07:12

本文主要是介绍Oracle通过move表来整理碎片操作步骤,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Oracle通过move表来整理碎片操作步骤

适用场景:
数据库经常性的通过delete来清数,导致数据库出现高水位,通过对表move或者行迁移来降低高水位。

操作前提:
在对表进行move前要注意,move操作时如果不指定表空间,则在原表空间移动数据块,在这个表空间中需要至少额外一倍该表大小的空间。
数据重组后,其 rowid 发生了改变。index是通过 rowid 来 fetch 数据行的,所以表上的 index 需要 rebuild。

检查事项:
操作前先确认业务是否已经停止。

检查表空间大小是否足够使用。

SQL>set linesize 120
COLUMN tablespace_name FORMAT a20
COLUMN status FORMAT a10
COLUMN ext_management FORMAT a15
COLUMN count for 9999
COLUMN CONTENTS FORMAT a10
COLUMN ASSM FORMAT a10
set pages 999
SELECT   d.tablespace_name,round(NVL (a.bytes - NVL (f.bytes, 0), 0) / 1024 / 1024) used_mb,round(NVL (a.bytes / 1024 / 1024, 0)) total_mb,         round(NVL ( (a.bytes - NVL (f.bytes, 0)) / a.bytes * 100, 0),2) ratio,d.status,a.COUNT,d.contents,d.extent_management ext_managementFROM   sys.dba_tablespaces d,(  SELECT   tablespace_name, SUM (bytes) bytes, COUNT (file_id) COUNTFROM   dba_data_filesGROUP BY   tablespace_name) a,(  SELECT   tablespace_name, SUM (bytes) bytesFROM   dba_free_spaceGROUP BY   tablespace_name) fWHERE       d.tablespace_name = a.tablespace_name(+)AND d.tablespace_name = f.tablespace_name(+)AND NOT d.contents LIKE 'UNDO'AND NOT (d.extent_management LIKE 'LOCAL'AND d.contents LIKE 'TEMPORARY')
UNION ALL
SELECT   d.tablespace_name,round(NVL (t.bytes, 0) / 1024 / 1024),round(NVL (a.bytes / 1024 / 1024, 0)),         round(NVL (t.bytes / a.bytes * 100, 0),2),d.status,a.COUNT,d.contents,d.extent_managementFROM   sys.dba_tablespaces d,(  SELECT   tablespace_name, SUM (bytes) bytes, COUNT (file_id) COUNTFROM   dba_temp_filesGROUP BY   tablespace_name) a,(  SELECT   ss.tablespace_name,SUM ( (ss.used_blocks * ts.blocksize)) bytesFROM   gv$sort_segment ss, sys.ts$ tsWHERE   ss.tablespace_name = ts.nameGROUP BY   ss.tablespace_name) tWHERE       d.tablespace_name = a.tablespace_name(+)AND d.tablespace_name = t.tablespace_name(+)AND d.extent_management LIKE 'LOCAL'AND d.contents LIKE 'TEMPORARY'
UNION ALL
SELECT   d.tablespace_name,round(NVL (u.bytes, 0) / 1024 / 1024),round(NVL (a.bytes / 1024 / 1024, 0)),         round(NVL (u.bytes / a.bytes * 100, 0),2),d.status,a.COUNT,d.contents,d.extent_managementFROM   sys.dba_tablespaces d,(  SELECT   tablespace_name, SUM (bytes) bytes, COUNT (file_id) COUNTFROM   dba_data_filesGROUP BY   tablespace_name) a,(  SELECT   tablespace_name, SUM (bytes) bytesFROM   dba_undo_extentsWHERE   status IN ('ACTIVE', 'UNEXPIRED')GROUP BY   tablespace_name) uWHERE       d.tablespace_name = a.tablespace_name(+)AND d.tablespace_name = u.tablespace_name(+)AND d.contents LIKE 'UNDO'
ORDER BY   4 desc;t.sql

Move前后都要检查索引状态

SQL> select index_owner,index_name,column_name,colum_position,status from dba_ind_columns where table_name= ‘tableName’ order by 1,2,3;

操作步骤:
对表进行move操作,move到原本表空间内

SQL> alter table tabName move;

重建索引开启4个并行

SQL> alter index indexName rebuild parallel 4;

索引创建完后并行度调至回1(即不适用并行)

SQL> alter index indexNamen noparallel;

重建主键

SQL> alter index PkName rebuild;

风险提示:

进行move操作时,查询 v$locked_objects视图,可以看到表上加了 exclusive lock锁,所以切勿在业务时间段进行move表操作。

这篇关于Oracle通过move表来整理碎片操作步骤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

C++ move 的作用详解及陷阱最佳实践

《C++move的作用详解及陷阱最佳实践》文章详细介绍了C++中的`std::move`函数的作用,包括为什么需要它、它的本质、典型使用场景、以及一些常见陷阱和最佳实践,感兴趣的朋友跟随小编一起看... 目录C++ move 的作用详解一、一句话总结二、为什么需要 move?C++98/03 的痛点⚡C++

Java方法重载与重写之同名方法的双面魔法(最新整理)

《Java方法重载与重写之同名方法的双面魔法(最新整理)》文章介绍了Java中的方法重载Overloading和方法重写Overriding的区别联系,方法重载是指在同一个类中,允许存在多个方法名相同... 目录Java方法重载与重写:同名方法的双面魔法方法重载(Overloading):同门师兄弟的不同绝

sqlserver、mysql、oracle、pgsql、sqlite五大关系数据库的对象名称和转义字符

《sqlserver、mysql、oracle、pgsql、sqlite五大关系数据库的对象名称和转义字符》:本文主要介绍sqlserver、mysql、oracle、pgsql、sqlite五大... 目录一、转义符1.1 oracle1.2 sqlserver1.3 PostgreSQL1.4 SQLi

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

Oracle Scheduler任务故障诊断方法实战指南

《OracleScheduler任务故障诊断方法实战指南》Oracle数据库作为企业级应用中最常用的关系型数据库管理系统之一,偶尔会遇到各种故障和问题,:本文主要介绍OracleSchedul... 目录前言一、故障场景:当定时任务突然“消失”二、基础环境诊断:搭建“全局视角”1. 数据库实例与PDB状态2

oracle 11g导入\导出(expdp impdp)之导入过程

《oracle11g导入导出(expdpimpdp)之导入过程》导出需使用SEC.DMP格式,无分号;建立expdir目录(E:/exp)并确保存在;导入在cmd下执行,需sys用户权限;若需修... 目录准备文件导入(impdp)1、建立directory2、导入语句 3、更改密码总结上一个环节,我们讲了

MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)

《MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)》本文给大家介绍MyBatis的xml中字符串类型判空与非字符串类型判空处理方式,本文给大家介绍的非常详细,对大家的学习或... 目录完整 Hutool 写法版本对比优化为什么status变成Long?为什么 price 没事?怎

Oracle迁移PostgreSQL隐式类型转换配置指南

《Oracle迁移PostgreSQL隐式类型转换配置指南》Oracle迁移PostgreSQL时因类型差异易引发错误,需通过显式/隐式类型转换、转换关系管理及冲突处理解决,并配合验证测试确保数据一致... 目录一、问题背景二、解决方案1. 显式类型转换2. 隐式转换配置三、维护操作1. 转换关系管理2.

Python按照24个实用大方向精选的上千种工具库汇总整理

《Python按照24个实用大方向精选的上千种工具库汇总整理》本文整理了Python生态中近千个库,涵盖数据处理、图像处理、网络开发、Web框架、人工智能、科学计算、GUI工具、测试框架、环境管理等多... 目录1、数据处理文本处理特殊文本处理html/XML 解析文件处理配置文件处理文档相关日志管理日期和

Python38个游戏开发库整理汇总

《Python38个游戏开发库整理汇总》文章介绍了多种Python游戏开发库,涵盖2D/3D游戏开发、多人游戏框架及视觉小说引擎,适合不同需求的开发者入门,强调跨平台支持与易用性,并鼓励读者交流反馈以... 目录PyGameCocos2dPySoyPyOgrepygletPanda3DBlenderFife