oracle 12c缩容磁盘组,oracle 表收缩

当使用delete表数据后,空间无法释放,可以使用表收缩释放表空间;

注意:当delete表大量数据的时候要注意undo,可以使用:alter  table  emp  nologging; 让其不生产日志

一、表的增长方式

当表被创建后,随着记录的不断插入,组成表的区间会被填满,如果启用了自动扩展,则当区间填满后,会分配新的区间。假定高水

位线随着记录的增加从最左端往右端来移动,当到底部区间的尾端时,则新的区间将会被分配。

二、表可收缩的原理

随着记录的增加高水位线不断的右移,记录的删除不会导致高水位线往回(左)移动

删除记录后的空闲空间(高水位线左侧)尽管可以使用,但其稀疏性导致空间空闲

注:完整的表扫描所耗费的时间不会因为记录的减少(删除)而减少

三、使用 alter table tbname shrink space 来收缩表段

1. 实现原理

实质上构造一个新表(在内部表现为一系列的DML操作,即将副本插入新位置,删除原来位置的记录)

靠近末尾处(右端)数据块中的记录往开始处(左端)的空闲空间处移动(DML操作),不会引起DML触发器

当所有可能的移动被完成,高水位线将会往左端移动(DDL操作)

新的高水位线右边的空闲空间被释放(DDL操作)

2. 实现前提条件

必须启用行记录转移(enable row movement)

仅仅适用于堆表,且位于自动段空间管理的表空间(堆表包括:标准表,分区表,物化视图容器,物化视图日志表)

3. 不能实现收缩的表

群集表

具有LONG类型列的表

LOB段(尽管表本身可以被缩小),注,10gR2以后版本支持对LOB段的收缩

具有基于提交的物化视图的表(因为禁用了触发器)

具有rowid物化视图的表(因为rowid发生了变化)

IOT映射表IOT溢出段

索引基于函数的表

未启用行记录转移的堆表

4. 段收缩的优点

提高缓存利用率,提高OLTP的性能

减少磁盘I/O,提高访问速度,节省磁盘空间

段收缩是在线的,索引在段收缩期间维护,不要求额外的磁盘空间

5. 两个选项

cascade: 缩小表及其索引,并移动高水位线,释放空间

compact: 仅仅是缩小表和索引,并不移动高水位线,不释放空间

alter table tbname shrink space 相当于带cascade参数

实战练习:

1、首先删除表里的数据

SQL> alter table FEE_COLLECT_TMP nologging;   ----设置表不产生undo

SQL> delete from FEE_COLLECT_TMP where CUTOFFDAY='20170501';

SQL> commit;

2、收缩表

SQL> alter table FEE_COLLECT_TMP enable row movement;                 -->开启row movement

SQL> alter table FEE_COLLECT_TMP shrink space;                        -->shrink成功

3、语法总结:ALTER TABLE  ENABLE ROW MOVEMENT   -->前提条件

ALTER TABLE  SHRINK SPACE [  | COMPACT | CASCADE ];

ALTER TABLE  SHRINK SPACE COMPCAT;  -->缩小表和索引,不移动高水位线,不释放空间

ALTER TABLE  SHRINK SPACE;     -->收缩表,降低高水位线;

ALTER TABLE  SHRINK SPACE CASCADE; -->收缩表,降低高水位线,并且相关索引也要收缩一下

ALTER TABLE  MODIFY LOB (lob_column) (SHRINK SPACE);  -->收缩LOB段

ALTER INDEX IDXNAME SHRINK SPACE;     -->索引段的收缩,同表段

#################################################################

1、收缩普通表,批量脚本

select'alter table '||table_name||' enable row movement;'||chr(10)||'alter table '||table_name||' shrink space;'||chr(10)from user_tables;

select'alter index '||index_name||' shrink space;'||chr(10)from user_indexes;

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

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

相关文章

php解决与处理网站高并发 大流量访问的方法

方法/步骤 首先,确认服务器硬件是否足够支持当前的流量 普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大, 那么必须首先配置一台更高性能的专用服务器才能解决问题 ,否则怎么优化都不可能彻底解决性能问题。 …

oracle 自动表分析,Oracle自动分析索引,表

--分析表REATE OR REPLACE PROCEDURE analyze_tables IS--rec integer;v_date1 number(10);v_date2 number(10);V_SQL varchar2(512);v_msg varchar2(512);BEGINFOR rec IN (SELECT table_name FROM user_tables)LOOPv_date1 : dbms_utility.get_time;V_SQL : ANALYZE TABLE |…

JavaScript 函数(作用域以及闭包)

JavaScript 函数(作用域以及闭包) ・执行环境及作用域 执行环境定义了变量或函数有权访问的其他数据。 每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量或函数都保存在这个对象中, 虽然我们编写的代码无法访问这个对…

十天学会PHP(第五版),十天学会php之第五天

十天学会php之第五天学习目的:学会读取数据先看两个函数:1、mysql_query送出一个 query 字符串。 语法: int mysql_query(string query, int [link_identifier]); 返回值: 整数本函数送出 query 字符串供 MySQL 做相关的处理或者执行。若没有指定 link_i…

《DSP using MATLAB》第6章开始了

看到第6章了,标记一下,全书近一半,继续加油 构建滤波器的三种元件: 下面是函数floor和size的部分帮助截图 转载于:https://www.cnblogs.com/ky027wh-sx/p/6235509.html

codeql php,使用codeql 挖掘 ofcms

前言网上关于codeql的文章并不多,国内现在对codeql的研究相对比较少,可能是因为codeql暂时没有中文文档,资料也相对较少,需要比较好的英语功底,但是我认为在随着代码量越来越多,传统的自动化漏洞挖掘工具的…

谈谈个人代码对团队合作影响

这几天正接手一个项目,属于后期功能拓展,要拓展这个项目,一定程度上要看到源码的部分,然后烦心的事情就来了,这代码写的真是让人挺无语的,原先写完整个项目的是已有多年工作经验的开发者,但是整…

php 连接符.,PHP怎么在数字之间添加连接符

PHP实现数字之间添加连接符,我们可以通过PHP中的for循环思想来实现。这里的连接符指的是“-”符号。推荐参考:《PHP教程》那么对于新手来说,可能有一定难度。下面我们就通过简单的代码示例,给大家介绍PHP给数字之间添加连字符的实…

linux怎么安装git服务器,linux下安装git服务端

[rootm2 ~]# yum install -y epel-*[rootm2 ~]# yum install -y git创建仓库目录[rootm2 ~]# mkdir /mnt/githome初始化目录[rootm2 ~]# git init --bare /mnt/githome/添加一个git用户,用来给开发者通过ssh访问git仓库 (git-shell是禁止服务器登录)[rootm2 ~]# use…

Linux —— 常用命令集合

关机和重启命令 shutdown [选项] 时间 (添加&,把关机任务放在后台执行) 只有shutdown可以保存关机时资源 操作选项 重启: r 关机: h 取消一个关机任务: c 关机命令(不安全) halt poweroff init 0 (系统运行级别) 重启命令 reboot init 6 (系统运行级别…

嵌入式linux 时间同步,解决嵌入式Linux中的时区问题

如果说让我做上层软件的工作,我做起来可以得心应手,但是让我做平台方面的工作(系统问题解决、驱动编写、软件移植等工作),确实不熟悉。所以很多问题都是摸着石头过河,没有经验。许多问题在有经验的朋友那里是小菜一碟,…

安装zabbix及LNMP的平台的搭建

Zabbix3.0.3安装文档 环境rhel 5.8 IP:192.168.0.8 需要安装: Nginx Php Mysql Zabbix 安装步骤: 一 . Nginx1.6安装 安装nginx前要先安装pcre(支持正则表达式),最好也安装一下openssl(可以支持…

linux脚本ls输出到变量中,bash – 将命令输出的错误消息存储到shell变量中

只需将stdout(正常输出)重定向到/ dev / null并保留stderror:a$(cp log.txt 2>&1 >/dev/null)看一个例子:$a$(cp log.txt 2>&1 >/dev/null)$echo "$a"cp: missing destination file operand after ‘log.txt’Try cp --he…

IOS 修改UIAlertController的按钮标题的字体颜色,字号,内容

IOS 修改UIAlertController的按钮标题的字体颜色,字号,内容 UIAlertController *alertVC [UIAlertController alertControllerWithTitle:"提示" message:nil preferredStyle:UIAlertControllerStyleActionSheet];//修改标题的内容&#xff0c…

bzoj2243

2243: [SDOI2011]染色 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 6753 Solved: 2496[Submit][Status][Discuss]Description 给定一棵有n个节点的无根树和m个操作,操作有2类: 1、将节点a到节点b路径上所有点都染成颜色c; 2、询问节点…

[原创]mybatis中整合ehcache缓存框架的使用

mybatis整合ehcache缓存框架的使用 mybaits的二级缓存是mapper范围级别&#xff0c;除了在SqlMapConfig.xml设置二级缓存的总开关&#xff0c;还要在具体的mapper.xml中开启二级缓存。 1.开启mybatis的二级缓存 在核心配置文件SqlMapConfig.xml中加入 1 <settings> 2 <…

linux隐藏apache信息,Linux下如何隐藏Apache版本号信息

利用linux搭建服务器的时候&#xff0c;如何隐藏自己Apache的版本号呢&#xff1f;或者连Apache名字直接隐藏&#xff0c;让别有用心的不知道自己网站用的是什么web服务器&#xff1f;至于为什么隐藏版本号&#xff0c;因为网上有很多教程都是关于Apache漏洞的&#xff0c;为了…

APP里如何添加本地文本

首先考虑到用webview加载&#xff0c;那么久需要把文本转化成html的形势啊&#xff1a;如下&#xff0c;先把文字放到一个文本里&#xff0c;然后 文本转换H5: 1.在word中将文件格式布局 2.word中文本标题设为宋体标题&#xff0c;设字号&#xff0c;并显示粗体 3.word中文字设…

php杂项

php5.3新增闭包函数用法use用法&#xff08;引入变量地址且随内存中值变化而变化,跳过解析顺序直接获取函数最终值&#xff09; $obj (object) "Hello, everyone"; $callback function () use ($obj) { print "This is a closure use object, msg is: {$o…

linux内核 频率,Linux内核中CPU主频和电压调整 (三)

如何开发一个新的CPUFreq driver初始化首先&#xff0c;在一个 __initcall level 7后者以后的函数中检查内核是否运行在正确的CPU和正确的芯片组上面。如果正确&#xff0c;则通过cpufreq_register_driver() 函数&#xff0c; 注册一个cpufreq_driver结构体。cpufreq_driver结构…