千家信息网

数据库表、索引、表空间的回收方法是什么

发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,本篇内容介绍了"数据库表、索引、表空间的回收方法是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
千家信息网最后更新 2025年02月24日数据库表、索引、表空间的回收方法是什么

本篇内容介绍了"数据库表、索引、表空间的回收方法是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

说明:数据库运行一段时间后,需要对数据库进行归档的操作;

数据库归档完成后,需要对表和索引进行收缩才能真正的提高整个系统的运行效率。

如果需要对数据库的表空间进行回收,还需要对数据文件进行rsize的操作;

详细操作步骤:

一、表和索引的收缩

1、查看需要进行收缩的对象(查看某个表空间下面,可回收空间超过100M的表)

脚本:

SELECT NUM_ROWS,AVG_ROW_LEN*NUM_ROWS/1024/1024/0.9 pinggu, BLOCKS*8/1024shiji,(BLOCKS*8/1024-AVG_ROW_LEN*NUM_ROWS/1024/1024/0.9) MB,TABLE_NAME

FROM dba_tables

WHERE tablespace_name='' AND

BLOCKS*8/1024-AVG_ROW_LEN*NUM_ROWS/1024/1024/0.9>100 AND rownum<11 order by mb desc;

2、进行表的收缩

1)打开表的行迁移

脚本: alter table enable row movement ;

2)进行表的收缩

脚本:alter table shrink space compcat;

3)进行高水位线的回收

alter table shrink space;

3、进行索引的回收(REBUILD和SHRINK都可以实现这个目的)

1)重建索引的脚本:

ALTER INDEX

REBUILD

NOCOMPRESS

NOPARALLEL

TABLESPACE

STORAGE (

INITIAL 1M

NEXT 1M

PCTINCREASE 0

)

ONLINE;

2)进行索引的收缩:

alter index shrink space;

4、运行重新编译脚本utlrp.sql,(因为开启行迁移后,可能有些对象会失效)

cd $ORACLE_HOME

@/rdbms/admin/utlrp.sql

二、表空间的回收

表空间的回收归根到底是数据文件大小的回收;

1、表空间回收大小的脚本和查看

select a.file#,a.name,a.bytes/1024/1024 CurrentMB,

ceil(HWM * a.block_size)/1024/1024 ResizeTo,

(a.bytes - HWM * a.block_size)/1024/1024 ReleaseMB,

'alter database datafile '''||a.name||''' resize '||

ceil(HWM * a.block_size/1024/1024) || 'M;' ResizeCMD

from v$datafile a,

(select file_id,max(block_id+blocks-1) HWM

from dba_extents where file_id in

(select b.file# From v$tablespace a ,v$datafile b

where a.ts#=b.ts# and a.name='')

group by file_id) b

where a.file# = b.file_id(+)

and (a.bytes - HWM *block_size)>0

order by 5

2、某些数据文件的使用率很小,但是进行数据文件的Resize时候却回收不了多少空间,可以通过以下语句查看相应

文件的段分配情况

select * from dba_extents where tablespace_name=' ' AND FILE_ID='' ORDER BY BLOCK_ID DESC;

说明:数据文件的可以resize的大小是由最大的BLOCK_ID所决定的,因此可以通过上面的shrink或者move命令进行操作;

3、进行数据文件的RESIZE操作

ALTER DATABASE DATAFILE '/oracle/ID1/112_64/dbs/oradataccdata.dbf'(数据文件的位置)

RESIZE 10000M。

"数据库表、索引、表空间的回收方法是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

数据 空间 文件 索引 数据库 脚本 收缩 大小 运行 方法 内容 可以通过 对象 情况 更多 知识 实用 最大 学有所成 归根到底 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 如何构建简单access数据库 目前使用的数据库模型 数据库应用 登录界面 一个ip 两个服务器 iava高级软件开发 成都博软软件开发公司 信息系统网络安全检查 苏州互联网软件开发定制费用 九龙坡区工商软件开发流程价目表 沙河天气预报软件开发 日本服务器开发工程师招聘 云互联网络科技有限公司 北京主要看气质网络技术 视觉系统软件开发做什么的 银客数据库 ensp中web服务器的作用 jdbc访问数据库应用实例 深圳鼎象互联网络科技有限 法院网络安全事件应急预案 南开区媒体网络技术答疑解惑 网络安全的发展规划 互联网加医疗科技的红线 成都生于有网络技术有限公司 不需要数据库的整站系统 手机没有网络安全数据会被盗吗 深圳市网络安全会议 三缺一网络技术 网络安全法实名制 多媒体与网络技术考试学习通 网络安全报告下一步计划
0