ORACLE 对象、空间查询、操作

--查看数据库版本
select * from v$version;

--表空间
select * from dba_tablespaces;
select name from v$tablespace;

--表空间对应的数据文件
select * from dba_data_files;

--数据库对象
select * from dba_objects;

--数据库表
select * from dba_tables;

--可扩展的最大次数
select * from dba_segments;
select * from dba_extents;

--用户
select * from dba_users;

--修改用户密码
alter user username identified by password;

--查看表空间使用情况
SELECT a.tablespace_name "表空间名",total 表空间大小,free 表空间剩余大小,
(total-free) 表空间使用大小,
ROUND((total-free)/total,4)*100 "使用率 %"
FROM  (SELECT tablespace_name,SUM(bytes) free FROM DBA_FREE_SPACE
GROUP BY tablespace_name ) a,
(SELECT tablespace_name,SUM(bytes) total FROM DBA_DATA_FILES
GROUP BY tablespace_name) b
WHERE a.tablespace_name=b.tablespace_name;

--查询oracle对象占用空间
1、查看用户表、索引、分区表占用空间
    select segment_name, sum(bytes)/1024/1024 Mbytese from user_segments  group by segment_name;
2、表占用空间
    select segment_name, sum(bytes)/1024/1024 Mbytese from user_segments where segment_type='TABLE' group by segment_name;
3、索引占用空间select segment_name ,sum(bytes)/1024/1024 from user_segments where segment_type ='INDEX' group by segment_name;
4、分区表TABLE PARTITION占用空间
    select segment_name,sum(bytes)/1024/1024 Mbytes  from user_segments where segment_type='TABLE PARTITION' group by segment_name;

--创建表空间
CREATE TABLESPACE TABLESPACE_NAME
   DATAFILE
     '/opt/oracle/oradata/orcl/imuse01_dat1' SIZE 2000M,
     '/opt/oracle/oradata/orcl/imuse01_dat2' SIZE 2000M
   EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
  
--增加表空间
ALTER TABLESPACE TBS_PRM
ADD DATAFILE '/opt/oracle/oradb/oradata/prm/TBS_PRM004.dbf' SIZE 2000M;

--删除表空间
drop tablespace BKDB including contents and datafiles;

--表做空间迁移时
alter table table_name move tablespace tablespace_name;

--索引表空间做迁移
alter index index_name rebuild tablespace tablespace_name;

--对于含有lob字段的表,在建立时,oracle会自动为lob字段建立两个单独的segment,一个用来存放数据,另一个用来存放索引,并且它们都会存储在对应表指定的表空间中,而例1:只能移动非lob字段以外的数据,所以在对含有lob字段的表进行空间迁移,需要使用如下语句:
alter table tb_name move tablespace old_tablespace_name lob (col_lob1,col_lob2) store as(tablesapce new_tablespace_name);

你可能感兴趣的:(oracle)