Oracle收缩表空间
可以使用 alter database datafile 'file path...' resize xM 的命令来缩小数据文件。
SELECT 'alter database datafile ''' || A.FILE_NAME || ''' resize ' ||
ROUND(A.FILESIZE - (A.FILESIZE - C.HWMSIZE - 100) * 0.8) || 'M;',
A.FILESIZE || 'M' AS "数据文件的总大小", C.HWMSIZE || 'M' AS "数据文件的实用大小"
FROM (SELECT FILE_ID, FILE_NAME, ROUND(BYTES / 1024 / 1024) AS FILESIZE
FROM DBA_DATA_FILES) A,
(SELECT FILE_ID, ROUND(MAX(BLOCK_ID) * 8 / 1024) AS HWMSIZE
FROM DBA_EXTENTS
GROUP BY FILE_ID) C
WHERE A.FILE_ID = C.FILE_ID AND
A.FILESIZE - C.HWMSIZE > 100;
or
SELECT 'alter database ' || A.NAME || ' datafile ''' || B.FILE_NAME || '''' ||
' resize ' ||
GREATEST(TRUNC(BYTES_FULL / .7), (BYTES_TOTAL - BYTES_FREE)) ||
CHR(10) || '--tablespace was ' ||
TRUNC(BYTES_FULL * 100 / BYTES_TOTAL) || '% full now ' ||
TRUNC(BYTES_FULL * 100 /
GREATEST(TRUNC(BYTES_FULL / .7), (BYTES_TOTAL - BYTES_FREE))) || '%'
FROM V$DATABASE A, DBA_DATA_FILES B,
(SELECT TABLESPACE_NAME, SUM(BYTES) BYTES_FULL
FROM DBA_EXTENTS
GROUP BY TABLESPACE_NAME) C,
(SELECT TABLESPACE_NAME, SUM(BYTES) BYTES_TOTAL
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME) D,
(SELECT A.TABLESPACE_NAME, A.FILE_ID, B.BYTES BYTES_FREE
FROM (SELECT TABLESPACE_NAME, FILE_ID,
MAX(BLOCK_ID) MAX_DATA_BLOCK_ID
FROM DBA_EXTENTS
GROUP BY TABLESPACE_NAME, FILE_ID) A, DBA_FREE_SPACE B
WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME AND
A.FILE_ID = B.FILE_ID AND
B.BLOCK_ID > A.MAX_DATA_BLOCK_ID) E
WHERE B.TABLESPACE_NAME = C.TABLESPACE_NAME AND
B.TABLESPACE_NAME = D.TABLESPACE_NAME AND
BYTES_FULL / BYTES_TOTAL < .7 AND
B.TABLESPACE_NAME = E.TABLESPACE_NAME AND
B.FILE_ID = E.FILE_ID;
alter tablespace TABLESPACENAME coalesce
此语句是整合表空间的碎片增加表空间的连续性,但是他不会收缩一个文件的大小的
选择某个表空间中超过N个blocks的segments,通过此语句可以看出那个表占用的空间大
SELECT OWNER, SEGMENT_NAME, SEGMENT_TYPE, BLOCKS
FROM DBA_SEGMENTS
WHERE TABLESPACE_NAME = 'RISK' AND
BLOCKS > 1000
ORDER BY BLOCKS DESC;
分析表,得知表的一些信息
analyze table TABLENAME estimate statistics;
SELECT INITIAL_EXTENT, NEXT_EXTENT, MIN_EXTENTS, BLOCKS, EMPTY_BLOCKS
FROM DBA_TABLES
WHERE TABLE_NAME = 'xx' AND
OWNER = 'xx';
用alter table ... deallocate unused 命令回收表的空间
alter table user.tablename deallocate unused keep 1k;
Oracle收缩表空间的更多相关文章
- ORACLE 收缩表空间的数据文件
http://blog.itpub.net/29345367/viewspace-1816427/ 方法一: 在实际的应用中经常会遇到TRUNCATE或者DELETE表中的数据后发现表空间并没有将空间 ...
- Oracle Temp表空间切换
来源于: http://www.2cto.com/database/201507/418564.html 一.TEMP表空间作用 临时表空间主要用途是在数据库进行排序运算.管理索引.访问视图等操作时 ...
- oracle暂时表空间 ORA-01652:无法通过16(在表空间XXX中)扩展 temp 字段
今天在查数据的时候报错 ORA-01652:无法通过16(在表空间temp1中)扩展 temp 字段 查看表空间使用明细 SELECT b.tablespace, b.segfile# ...
- Oracle Temp 表空间切换
一.TEMP表空间作用 暂时表空间主要用途是在数据库进行排序运算.管理索引.訪问视图等操作时提供暂时的运算空间,当运算完毕之后系统会自己主动清理.当 oracle 里须要用到 sort 的时候. PG ...
- oracle数据库表空间追加数据库文件方法
oracle数据库表空间追加数据库文件方法 针对非大文件方式表空间,允许追加文件进行表空间的扩展,单个文件最大大小是32G 第一种方式:表空间增加数据文件 www.2cto.com 1 ...
- Oracle 设置表空间自增长
Oracle修改表空间大小 使用Oracle10g建立数据库后,向数据库中导入了部分数据,第二天继续向数据库中导入数据表时发生错误: 查了很多资料发现原来是Oracle表空间限制,导致无法继续导入数据 ...
- Oracle基础表空间建立,以及练习
Oracle的表空间创建,可以采用网页的https://127.0.0.1:1158/em来进入oracle的页面进行创建表空间. 利用plsqldev.exe程序在表空间里添加数据: 首先要在use ...
- [转载]Oracle修改表空间大小
Oracle修改表空间大小 使用Oracle10g建立数据库后,向数据库中导入了部分数据,第二天继续向数据库中导入数据表时发生错误: 查了很多资料发现原来是Oracle表空间限制,导致无法继续导入数据 ...
- Oracle建立表空间和用户
Oracle建立表空间和用户 建立表空间和用户的步骤: 用户 建立:create user 用户名 identified by "密码"; 授权:grant create sess ...
随机推荐
- 转: 视频相关的协议族介绍(rtsp, hls, rtmp)
转自: http://www.zhihu.com/question/20621558 作者:杨华链接:http://www.zhihu.com/question/20621558/answer/1 ...
- 【JS Note】字符串截取
Js中字符截取常用的三个函数:slice().substring().substr(). slice(): slice(start,[end]) 第一个参数代表开始位置,第二个参数代表结束位置的下一个 ...
- JavaScript--正则表达式(笔记)
一 什么是正则表达式 // 正则表达式(regular expression)是一个描述字符模式的对象; // JS定义RegExp类表示正则表达式; // String和RegExp都定义了使用正则 ...
- windows下,python+scrapy环境搭建
•安装lxml(官网给出的地址http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml,下载whl文件安装) •安装zope.interface https:// ...
- 将slider滑块从横着变为竖着的时候坐标变换的计算
//// ViewController.m// imageview添加按钮//// Created by hehe on 15/9/22.// Copyright (c) 2015年 wang ...
- 【学习笔记】【C语言】函数
一. 什么是函数 任何一个C语言程序都是由一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”.所以,你可以说C语言程序是由函数构成的. 比如你用C语言编写了一 ...
- 6个超炫酷的HTML5电子书翻页动画
相信大家一定遇到过一些电子书网站,我们可以通过像看书一样翻页来浏览电子书的内容.今天我们要分享的HTML5应用跟电子书翻页有关,我们精选出来的6个电子书翻页动画都非常炫酷,而且都提供源码下载,有需要的 ...
- AndroidStudio支持新的NDK的操作使用
在2015的Google I / O大会,5月底,谷歌宣布了一项新的支持由Android NDK Studio 1.3,Jetbrains CLion集成功能,Android gradle插件.这种支 ...
- 问题:LVM lvextend增加空间后,df查看还是原来空间
1.LVM的调整空间大小: #lvextend -L +1300M /dev/mapper/ycgsstore_sdb-wmy #lvdisplay wmy ycgsstore_sdb -wi-ao- ...
- 使用tortoisegit管理git 和 权限验证
1 安装Git 2 安装Tortoise 3 在git.oschina 或者 github上创建项目 4 Tortoise配置 TortoiseGit 使用扩展名为ppk的密钥,而不是ssh-keyg ...