Oracle释放高水位线
/*****************************************************************
原因:由于原导出数据库没有整理表空间其中主要包括两方面,
一是用户产生太多的DELETE,致使表的高位线(HWM)在很高的位置,
所以尽管数据量很小,但是占据的表空间很大,二是索引没有重建,
频繁的删除以及更新使得索引越来越大,REBUILD索引是个很必要的事情
*****************************************************************/
--** 优先处理CUX客制化对象
--Step1
--Tablespace Summary
SELECT A.TABLESPACE_NAME,
A.TOTAL M_TOTAL,
NVL (B.USED, 0) M_USED,
NVL ( (B.USED / A.TOTAL) * 100, 0) PCT_USED,
A.FILE_NAME
FROM ( SELECT TABLESPACE_NAME,
SUM (BYTES) / (1024 * 1024) TOTAL,
WMSYS.WM_CONCAT (FILE_NAME) FILE_NAME
FROM SYS.DBA_DATA_FILES
GROUP BY TABLESPACE_NAME) A,
(SELECT TABLESPACE_NAME, BYTES / (1024 * 1024) USED
FROM SYS.SM$TS_USED) B
WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME(+)
--AND A.TABLESPACE_NAME LIKE 'CUX%'
ORDER BY NVL ( (B.USED / A.TOTAL) * 100, 0) DESC;
--Tablespace Objects Detail
SELECT A.TABLESPACE_NAME,
A.TOTAL M_TOTAL,
NVL (B.USED, 0) M_USED,
NVL ( (B.USED / A.TOTAL) * 100, 0) PCT_USED,
A.FILE_NAME,
C.OJBECT_TYPE,
C.OJBECT_NAME,
C.M_OBJ_USED,
NVL ( (C.M_OBJ_USED / A.TOTAL) * 100, 0) PCT_OBJ_USED
FROM ( SELECT TABLESPACE_NAME,
SUM (BYTES) / (1024 * 1024) TOTAL,
WMSYS.WM_CONCAT (FILE_NAME) FILE_NAME
FROM SYS.DBA_DATA_FILES
GROUP BY TABLESPACE_NAME) A,
(SELECT TABLESPACE_NAME, BYTES / (1024 * 1024) USED
FROM SYS.SM$TS_USED) B,
(SELECT TABLESPACE_NAME,
SEGMENT_NAME OJBECT_NAME,
SEGMENT_TYPE OJBECT_TYPE,
(BYTES / 1024 / 1024) M_OBJ_USED
FROM DBA_SEGMENTS
WHERE SEGMENT_TYPE IN ('TABLE', 'INDEX')) C
WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME(+)
AND A.TABLESPACE_NAME = C.TABLESPACE_NAME(+)
ORDER BY NVL ( (B.USED / A.TOTAL) * 100, 0) DESC;
--Step2
-------------------------------------
--释放高水位线 HWM
--只对有清理过数据的表对象执行(耗时过长)
DECLARE
L_SQL1 VARCHAR2 (1000);
L_SQL2 VARCHAR2 (1000);
BEGIN
FOR R IN (SELECT (OWNER || '.' || SEGMENT_NAME) OBJ
FROM DBA_SEGMENTS
WHERE SEGMENT_TYPE = 'TABLE' AND TABLESPACE_NAME LIKE 'CUX%'
AND SEGMENT_NAME IN('CUX_INV_ISSUE_OA_LOG'))
LOOP
L_SQL1 := 'alter table ' || R.OBJ || ' enable row movement';
L_SQL2 := 'alter table ' || R.OBJ || ' shrink space';
DBMS_OUTPUT.PUT_LINE (R.OBJ);
EXECUTE IMMEDIATE L_SQL1;
EXECUTE IMMEDIATE L_SQL2;
END LOOP;
END;
-------------------------------
/*
--暂不应用
--Rebuild Index
DECLARE
L_SQL VARCHAR2 (1000);
BEGIN
FOR R IN (SELECT (OWNER||'.'||SEGMENT_NAME) OBJ
FROM DBA_SEGMENTS
WHERE SEGMENT_TYPE = 'INDEX' AND TABLESPACE_NAME = 'CUX_INDEX')
LOOP
L_SQL := 'alter index ' || R.OBJ || ' rebuild online';
DBMS_OUTPUT.PUT_LINE (L_SQL);
EXECUTE IMMEDIATE L_SQL;
END LOOP;
END;
*/
--删除表同时删除回收站 Shift+Delete
--DROP TABLE CUX.CUX_INV_ISSUE_OA_LOG_TEST1 PURGE;
--alter database datafile 'filename' resize size;
Oracle释放高水位线的更多相关文章
- Oracle的高水位线
一.什么是水位线 所有的oracle段都会有一个在段内容纳数据的上线,把这个上限成为“high water mark”,这是一个标记,用来说明已经有多少没有使用的数据块分配给这个段,原则上high w ...
- Oracle数据库入门——高水位线详解
一.什么是水线(High Water Mark)? 所有的oracle段(segments,在此,为了理解方便,建议把segment作为表的一个同义词) 都有一个在段内容纳数据的上限,我们把这个上限称 ...
- oracle 高水位线详解
一.什么是水线(High Water Mark)? 所有的oracle段(segments,在此,为了理解方便,建议把segment作为表的一个同义词) 都有一个在段内容纳数据的上限,我们把这个上限称 ...
- 一、oracle 高水位线详解
一.什么是水线(High Water Mark)? 所有的oracle段(segments,在此,为了理解方便,建议把segment作为表的一个同义词) 都有一个在段内容纳数据的上限,我们把这个上限称 ...
- [转载]oracle 高水位线详解
一.oracle 高水位线详解 出处: https://www.cnblogs.com/linjiqin/archive/2012/01/15/2323030.html 一.什么是水线(High Wa ...
- 08 Oracle表碎片查询以及整理(高水位线)
Oracle表碎片查询以及整理(高水位线) 1.表碎片的来源 当针对一个表的删除操作很多时,表会产生大量碎片.删除操作释放的空间不会被插入操作立即重用,甚至永远也不会被重用. 2.怎样确定是否有表碎片 ...
- oracle 基础知识(十五)----高水位线
一,oracle的逻辑存储管理 ORACLE的逻辑存储管理,分4个粒度:表空间,段,区和块. ## 块 粒度最小的存储单位,现在标准的块大小是8K,ORACLE每一次I/O操作也是按块来操作的,也就是 ...
- ORACLE 11g 生产中高水位线(HWM)处理
数据库中表不断的insert,delete,update,导致表和索引出现碎片.这会导致HWM之前有很多的空闲空间,而oracle在做全表扫描的时候会读取HWM一下的所有块,这样会产生更多的IO,影响 ...
- oracle 高水位线
一.oracle 高水位线详解 一.什么是水线(High Water Mark)? 概念: 1.块: 是粒度最小的存储单位,现在标准的块大小是8K,ORACLE每一次I/O操作也是按块来操作的,也就是 ...
随机推荐
- js基本语法之 值类型(数据类型)(变量类型)
一.不可改变的原始值(栈数据)(五个) 数字(number),字符串(string),布尔值(boolean),undefined,null 其中;undefined是未定义的意思,而null是空的意 ...
- jenkins学习笔记(一)
windows下安装jenkins步骤 1.下载 官网路径:https://jenkins.io/ 2.安装 直接双击安装程序即可 centos7下安装命令: wget -O /etc/yum.rep ...
- fshc之请求仲裁机制(from mcu and cache)
1.arbiter模块本身放在sclk时钟域,但是输入都是来之HCLK时钟域. 2.当MCU/CACHE访问FSHC时,FSHC不接受其他请求,FSHC只可以同时处理一个请求的操作. 3.如果原子操作 ...
- 【java】抽象类继承关系
抽象类: 抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充. 一个类不能同时被 abstract 和 final 修饰.如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将 ...
- 洛谷P3961 图的遍历
题目来源 做这道题的方法不少. 在这里我只提一种 就是大法师. 可以采用反向建边,从最大的点开始dfs 我们考虑每次从所剩点中最大的一个点出发,我们暂且称它为i,而凡是i这个点所能到达的点,可以到达的 ...
- jq:mouseover和mouseout多次触发解决办法
区别: mouseover与mouseenter 不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件. 只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件. mou ...
- luogu2634 聪聪可可
点分治裸题 #include <iostream> #include <cstdio> using namespace std; int n, uu, vv, ww, ans, ...
- JMeter学习笔记21-如何添加思考时间
本文来介绍,JMeter如何插入思考时间.前面介绍过一个真实的性能测试场景,是需要加入思考时间,来模拟真实用户行为.本文就来介绍,如何在三个请求之间添加思考时间. 1. 在Test Plan下新建一个 ...
- Jmeter接口测试-简单分析结果数、聚合报告以及图形结果(二)
简单分析结果数.聚合报告以及图形结果 结果树 取样器结果:返回值报200,表示执行接口调试成功 请求:发送的数据 响应数据:返回的数据 Thread Name:线程组名称 Sample Start: ...
- SPOJ-Matrices with XOR property,暴力打表!
Matrices with XOR property 应该先去看看这题的,补题的时候发现这题其实挺简单的.. 题意:n*m的格子用1-n*m的数去填,要求如果一个格子(i1,j1)与另外一个格子(i2 ...