查看以及修改表空间占用情况
2017-09-09 14:09
267 查看
查看表空间占用情况
修改表空间大小
/*
以前从平台1中分离出来的数据库,库中许多表表数据为空,但表初始大小很大
此脚本批量更新这种表,修改表初始大小64K
1.遍历表大小大于10M的表
2.判断是否有数据
3.针对没有数据的情况,修改表初始大小为64K
*/
declare
Type cur_ref Is Ref Cursor;
rcursor cur_ref;
i integer:=0;
sTableName varchar2(200);
sTableSpace varchar2(200);
sTmpSql varchar2(4000);
begin
sTmpSql := ‘select segment_name from user_extents where segment_type = ”TABLE” group by segment_name having sum(bytes)/1024/1024 > 10 order by sum(bytes)/1024/1024 desc’;
open rcursor for sTmpSql;
loop
fetch rcursor into sTableName;
exit when rcursor%notfound;
sTmpSql := ‘select count(1) from ‘||sTableName||”;
execute immediate sTmpSql into i;
if i=0 then
sTmpSql := ‘select t.TABLESPACE_NAME from user_tables t where t.TABLE_NAME = ”’||sTableName||””;
execute immediate sTmpSql into sTableSpace ;
sTmpSql := ‘alter table ‘||sTableName||’ MOVE TABLESPACE ‘||sTableSpace||’ storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
)’;
execute immediate sTmpSql;
end if;
end loop;
end;
Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name order by Sum(bytes)/1024/1024 desc
修改表空间大小
/*
以前从平台1中分离出来的数据库,库中许多表表数据为空,但表初始大小很大
此脚本批量更新这种表,修改表初始大小64K
1.遍历表大小大于10M的表
2.判断是否有数据
3.针对没有数据的情况,修改表初始大小为64K
*/
declare
Type cur_ref Is Ref Cursor;
rcursor cur_ref;
i integer:=0;
sTableName varchar2(200);
sTableSpace varchar2(200);
sTmpSql varchar2(4000);
begin
sTmpSql := ‘select segment_name from user_extents where segment_type = ”TABLE” group by segment_name having sum(bytes)/1024/1024 > 10 order by sum(bytes)/1024/1024 desc’;
open rcursor for sTmpSql;
loop
fetch rcursor into sTableName;
exit when rcursor%notfound;
sTmpSql := ‘select count(1) from ‘||sTableName||”;
execute immediate sTmpSql into i;
if i=0 then
sTmpSql := ‘select t.TABLESPACE_NAME from user_tables t where t.TABLE_NAME = ”’||sTableName||””;
execute immediate sTmpSql into sTableSpace ;
sTmpSql := ‘alter table ‘||sTableName||’ MOVE TABLESPACE ‘||sTableSpace||’ storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
)’;
execute immediate sTmpSql;
end if;
end loop;
end;
相关文章推荐
- 查看linux分区占用空间情况
- Linux查看某目录占用空间以及其下有多少个文件
- netstat用法以及查看端口占用情况
- Linux查看某目录占用空间以及其下有多少个文件
- Linux中查看当前目录下所有子目录空间占用情况的命令 [plain] view plain copy du -shc *
- java 对象占用内存查看 以及JVM级别 方法修改等
- Linux查看某目录占用空间以及其下有多少个文件
- centos服务器如何用命令查看哪个程序内存占用情况,硬盘空间占用
- 快速查看SQL各表的数据量以及占用空间大小
- Oracle 查看表空间使用情况以及增加表空间
- Shell脚本实现监控swap空间使用情况和查看占用swap的进程
- 查看端口被占用的情况以及如何解除端口占用
- SqlServer2005 查看表占用磁盘空间情况
- 查看某目录占用空间以及其下有多少个文件
- MySQL查看数据库、表的占用空间大小以及某个库中所有表的引擎类型
- windows中查看端口占用情况以及删除端口
- 查看表空间大小以及已占用空间大小
- linux下查看端口占用情况以及服务启动的目录
- 一键访问Win8.1 Update的磁盘空间查看资源占用情况
- 查看SqlServer某张表的物理空间占用情况