当前位置:首页 > 技能相关 > ORACLE > 正文内容

Oracle删除表数据后调整表空间、数据文件DBF大小

admin3年前 (2022-04-17)ORACLE23540 修订时间:2022-04-17 09:03:20

Oracle删除表数据后,表空间并不会自动释放,使用如下操作,即可释放表空间,自增变大的表空间DBF文件需要调整后磁盘空间才会释放。

一、释放表空间语句(在删除数据后执行)

--开启允许行移动, 此操作后允许rowid改变
alter table XS_TXT_PPJL enable row movement;

--回收空间
alter table XS_TXT_PPJL shrink space;

二、调整DBF文件大小

找到目录 D:\app\Administrator\product\11.2.0\dbhome_1\install 下的readme.txt 文件,查看 Oracle Enterprise Manager 访问地址

oracle管理工具.png

使用DBA用户登录管理工具

oracle管理工具登录窗口.png

选择服务器-数据文件,打开DBF管理界面,双击对应的数据文件,点击编辑,即可调整DBF文件的大小以及具体配置。

oracle管理工具管理操作.png

三、查询表空间使用率

SELECT UPPER(F.TABLESPACE_NAME) as "表空间名",
   D.TOT_GROOTTE_MB as "表空间大小(M)",
   D.TOT_GROOTTE_MB - F.TOTAL_BYTES as "已使用空间(M)",
   TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' as "使用率",
   F.TOTAL_BYTES as "空闲空间(M)",
   F.MAX_BYTES as "最大块(M)"
   FROM (SELECT TABLESPACE_NAME,
   ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
   ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
   FROM SYS.DBA_FREE_SPACE
   GROUP BY TABLESPACE_NAME) F,
   (SELECT DD.TABLESPACE_NAME,
    ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
   FROM SYS.DBA_DATA_FILES DD
   GROUP BY DD.TABLESPACE_NAME) D
   WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
   ORDER BY "使用率" desc;


 您阅读本篇文章共花了: 

免责声明
本站内容均为博客主本人日常使用记录的存档,如侵犯你的权益请联系:lifei@zaiheze.com 546262132@qq.com 沟通删除事宜。本站仅带访问端口形式使用,已杜绝搜索引擎爬取。

扫描二维码推送至手机访问。

版权声明:本文由LIFEI - blog发布,如需转载请注明出处。

本文链接:http://www.lifeiai.com/?id=166

分享给朋友:

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。