Oracle表空间常用操作

1、创建表空间
在SQL Plug下,执行下面的语句
create tablespace NBERP  
logging  
datafile 'D:\oracle\oradata\Oracle9i\user_data.dbf' 
size 50m  
autoextend on  
next 50m maxsize 2048m  
extent management local;
 
红色为表空间名字;
黄色为表空间文件的路径;
蓝色为表空间的最大值;
 
2、转移单个表的所属表空间
以userinfo表为例,刚开始此表属于表空间USERS,用下面的语句可以查表所属的表空间
select TABLE_NAME, TABLESPACE_NAME from tabs where TABLE_NAME='USERINFO'; 
 
修改表的所属表空间,用下面的sql:
alter table userinfo move tablespace NBERP;
commit;
 
然后再用 
select TABLE_NAME, TABLESPACE_NAME from tabs where TABLE_NAME='USERINFO'; 
确认userinfo表是否已经更改表空间了。
 
3、某个表空间下的所有表都转移表空间的办法
关键在于这个sql
alter table userinfo move tablespace NBERP;
将黄色的表换成其他表,就能达到转换表空间的目的;
 
用下面的sql拼装某个表空间下的所有表转移表空间的SQL
select 'alter table '||table_name||' move tablespace NBERP;commit;'  from user_tables where tablespace_name='USERS';
将上面sql执行的结果,导出来,每行记录就表示1个表的表空间转移,
 
 
4、转移某表空间下的所有索引到另一个表空间下
关键sql如下,转移单个索引到其他表空间
alter index idx_user rebuild tablespace NBERP;commit;
 
同样的,拼装所有转移索引的sql为
select 'alter index '||index_name||' rebuild tablespace newspace;commit;' from user_indexs where tablespace_name='USERS';
 
将执行结果导出,执行结果集中拼装的sql,改变所有的索引。
 
5、查看所有表空间的最大值 
select tablespace_name ,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;
 
6、查看表空间的剩余空间
select tablespace_name ,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值