oracle表空间如何压缩,Oracle里表空间的压缩

对于table空间的收缩是一个老生常谈的问题,不过却是一个一直都没有很透彻的讨论清楚过的问题。借ks_reny的机会,谈谈个人看法,有不及之处,希望高手引领更深入研究此话题。

datafile是物理上的一个文件在下层就是基于文件系统的block块了,而我们经常提到的segment,extent,数据库的 block,这里都是oracle存储是的逻辑上的单位,所以首先设想一下如果是你来实现delete或者drop的操作的时候,你会是真正的调用文件系统的API,而重新把datafile重新整理一遍吗,我想你也不会如此的吧。这样的话,每个delete或者是drop的操作将会带来我们更多的痛苦。所以Oracle更不会如此,这就是为什么你的datafile的大小并没有发生变化的原因,那么,文件系统上虽然没有重新修理datafile,但是 oracle里却通过自己的实现,通过对内部逻辑单元的处理,在逻辑上已经删除了那些单元,从而storage manage知道以后如果需要的连续block这里可以满足的话,就把这个碎片填上了。所以对于oracle来说,他很清楚这里是可用的,这样利用率也就小了变话了。

所以这里要解决你的问题就要使我们的datafile瘦身,只有datafile瘦下来了,你的data又不变化了,利用率也就上升了。那么如何让你的datafile瘦下来?

1. exp/imp expdp/impdp 这个虽然原始,也比较繁琐,但是确实是一个非常稳定可靠的方法。

2. resize resize面临一个问题,resize到多大,大了没有意义,小了出现错误。

这里特地写了一个sql脚本,你可以使用运行这个脚本的结果,就是你指定的file做resize的命令

SQL> variable blocksize number;

SQL> begin execute immediate 'select value from v$parameter where name = ''db_block_size''' into :blocksize; end;

2 /

SQL>print :blocksize;

SQL> select 'alter database datafile ''' ||

2 file_name || ''' resize ' ||

3 ceil( nvl(hwm,1)*:blocksize/1024/1024 ) || 'm;' cmd

4 from dba_data_files a,

5 ( select file_id,

6 max(block_id+blocks-1) hwm

7 from dba_extents

8 group by file_id ) b

9 where a.file_id = b.file_id(+) and b.file_id in (7, 8, 10);

CMD

--------------------------------------------------------------------------------

alter database datafile 'F:\DEVELOPER\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEST\TESTTS1.02.DBF' resize 18m;

alter database datafile 'F:\DEVELOPER\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEST\TESTTS1.01.DBF' resize 5m;

alter database datafile 'F:\DEVELOPER\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEST\TESTTS1.03.DBF' resize 40m;

执行这里的sql语句就可以了,不过这里注意了,这里可以看到,实际上是用最大的blocks作为resize的标准,如果size超过,或者是已经扩展过的block 就会出现 文件包含在请求的 RESIZE 值以外使用的数据的错误了,所以这个方法,可行但是并不是很实际。这样的case基本上只在做练习的时候出现。

3. 如果你是一个表或者少量的表在那个表空间,可以通过creat table as select ...的方式或者move的方式,move完成后再干掉表空间,干掉表空间的时候,including contents and datefiles就可以了。

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

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

相关文章

刚刚,百度总裁张亚勤说……

作者奋笔疾书的小编原创文章,如有转载,请联系本公众号。9月4日, ABC SUMMIT百度云智峰会在上海举行。百度总裁张亚勤首先发表《云计算的新浪潮》主题演讲,他表示,我们已经全面进入物理世界数字化、AI as a Service、新…

pycharm 提示:this license **** has been cancelled(2)

目录 一.找到hosts文件 二.修改hosts文件 三.检查hosts文件是否修改成功 pycharm安装激活过程中,提示 this license **** has been cancelled 。这个问题并不是你的激活码不对,而是需要修改系统的hosts文件,下面详细讲解下如何修改hosts文…

linux的trace文件路径,linux系统分析工具之Blktrace(十)

Blktrace简介:blktrace是一个针对Linux内核中块设备I/O层的跟踪工具,用来收集磁盘IO信息中当IO进行到块设备层(block层,所以叫blk trace)时的详细信息(如IO请求提交,入队,合并,完成等等一些列的信息)&#…

嘿,运维!你与VXLAN有场约会……

图片来源:网络作者Bert如有转载,请联系本公众号。VXLAN概述 ▍顾名思义,VXLAN(Virtual eXtensible Local Area Network)提供了类似VLAN的二层网络服务,并且比VLAN更具备扩展性和灵活性,该技术将…

如何判断一个点在任意四边形内

通过面积法,判断点P是否在四边形(A,B,C,D)内。如果在四边形内,则四边形的面积面积(P,A,B)面积(P,B,C)面积(P,C,D)面积(P,D,A),反之不在四边形内。 此处我将判断方法定义成了静态方法,方便其他类访问,代码如下: public class IsInQuadrangle {public IsInQuadrangle…

加载不同linux内核,Linux内核加载过程

以32位x86,bzImge为例grub版本为0.971、计算机上电2、0xFFFFFFF0当cpu检测reset引脚上的信号后便将指令指针寄存器的值设置为0xfff0——INTEL 80386 PROGRAMMERS REFERENCE MANUAL 1986, Chapter 10此时为实模式,cpu将执行物理地址0xFFFFFFF0处的指令访址…

网格变形动画MeshTransform

原文:Mesh Transforms 作者:Bartosz Ciechanowski 译者:kmyhy 我是 transform 属性的超级粉丝。让 UIView 或者 CALayer 的形体发生改变的最简单方法就是联合使用旋转、平移和缩放。在易于适用的同时,常规变换所能实现的效果也同…

cloud一分钟 | 腾讯云联手斗鱼、虎牙两大头部游戏直播平台开启 定制道具的创新互动...

Hello,everyone:9月7日早,星期五,祝大家工作愉快!一分钟新闻时间:完01微 信 群 添加小编微信:tangguoyemeng,备注“进群”即可,加入【云计算学习交流群】,和…

Linux服务器硬盘更换,[ Linux ] 服务器更换硬盘

服务器型号:ThinkServer RD650操作系统:Red Hat 6.7业务用途:生产环境监控机接到机房邮件通知,告知某台服务器硬盘告警,并提供了设备SN号和机柜位置。根据提供想相关信息找到对应的设备IP并确定该设备的业务用途。登录…

【BAT面试现场】如何判断一个数是否在40亿个整数中?

作者channingbreeze如需转载,请联系原作者授权。小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT。今天他就去BAT中的一家面试了。简单的自我介绍后,面试官给了小史一…

彩色BMP转换成灰度图的原理

图像处理中,大部分的处理方法都需要事先把彩色图转换成灰度图才能进行相关的计算、识别。 彩色图转换灰度图的原理如下: 我们知道彩色位图是由R/G/B三个分量组成,其文件存储格式为 BITMAPFILEHEADERBITMAPINFOHEADER,紧跟后面的可…

Linux java 生效不了,linux jdk 不生效怎么办

【摘要】操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。下面是linux jdk 不生效怎么办,让我…

程序猿 - 超实用的工具、素材、学习网站分享

文章目录------------------------------学习教程篇-------------------------------bilibili哔哩哔哩网易云课堂siki学院:泰课在线:可汗学院:线性代数的本质 - bilibili计算机科学速成课 - bilibiliLearnOpenGL:The Book of Shad…

【大数据学习笔记】新手学习路线图

第1阶段-数据仓库基 1.MysQL关系型数据库 (MySQL介绍、MySQL安装、MySQL基础语法、MySQL高级语法、MySQL系统架构、MySQL存储引擎、MySQL索引、MySQL备份恢复、MySQL主从、主主复制、MySQL存储过程、MySQL分库分表、MySQL综合案例、MySQL性能优化) 2.P…

面趣 | 马云在面试中出的一道题,据说只有一个人答对……

大神,求解!据说,马云给新员工出了一道题然鹅,只有一个人答对了!!!!智商不足的小编居然打开了这道题求解!!!我手里有50元钱花去剩余买衣服 20元30…

linux划分5t硬盘,关于磁盘分区(以linux系统为例)

一、关于硬盘种类、物理几何结构及硬盘容量、分区大小计算;1、硬盘种类、物理几何结构硬盘的种类主要是SCSI 、IDE 、以及现在流行的SATA等;任何一种硬盘的生产都要一定的标准;随着相应的标准的升级,硬盘生产技术也在升级&#xf…

云漫圈 | 敢怼我们程序员?哼,有你好看的。。。

作者设计师静静来源非著名程序员原创作品,如有转载,请联系公众号授权。原创漫画,禁止转载,侵权必究前几天在网络上看到一个关于产品经理和设计的对话,非常的搞笑,有意思。对话如下:产品经理&…

这些软件太强了,Windows必装!尤其程序员!

Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享…

linux配置端口ipv6地址,linux配置ipv6地址命令

linux配置ipv6地址命令模块加载:/etc/module.conf中增加下列行:alias net-pf-10 ipv6配置ipv6:/etc/sysconfig/network中增加下列行:NETWORKING_IPV6yes其它选项(摘自linux下/etc/sysconfig/network-scripts/init.ipv6-global脚本)&#xff1…

教师节 | 程序员都这么玩,你敢挑战吗?

课堂上的每一课您总能「抽象」出整个世界不断「重载」出覆盖这个世界的任何方法当某个「异常」陷入自己的「静态属性」难以自拔时您总会调用千百种「方法」作为一种特别的「参数」传进把「异常」从一个「死循环」中解救出来在无尽的黑夜中您「释放」所有的系统资源不断的开发我…