oracle表空间

来源:互联网 发布:淘宝上哪家皮草店好 编辑:程序博客网 时间:2024/06/06 23:34

--创建表空间
CREATE TABLESPACE TBS_CCARE_D01 LOGGING DATAFILE '/dev/rlv_crmdata1' SIZE 10M REUSE AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED blocksize 8192 EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO ;
alter tablespace TBS_CCARE_D01 add datafile '/dev/rlv_crmdata2' size 7600M;


select * from dba_data_files;--数据文件
alter database datafile datafile_id resize 1000M;
--temp表空间
alter database tempfile 'lvname' resize 1000M;

alter user scu temporary tablespace temp_migrate;

--关闭自动扩展
alter database datafile '/dev/vx/rdsk/vgora/lv_user' autoextend off

--查看表空间的使用状态
select df.tablespace_name "Tablespace",
       df.bytes / (1024 * 1024) "Total Size(MB)",
       sum(fs.bytes) / (1024 * 1024) "Free Size(MB)",
       round(sum(fs.bytes) * 100 / df.bytes) "% Free",
       round((df.bytes - sum(fs.bytes)) * 100 / df.bytes) "% Used"
  from dba_free_space fs,
       (select tablespace_name, sum(bytes) bytes
          from dba_data_files
         group by tablespace_name) df
 where fs.tablespace_name = df.tablespace_name
 group by df.tablespace_name, df.bytes
 order by df.bytes desc;

 

--查看lv使用情况
select *
  from (select a.file_name, to_number(substr(a.file_name, 17)) t_num
          from dba_data_files a
         where a.file_name like '/dev/rlv_crmdata%') b
 order by b.t_num desc;


--查询temp表空间
select d.TABLESPACE_NAME,
       SPACE "SUM_SPACE(M)",
       BLOCKS SUM_BLOCKS,
       USED_SPACE "USED_SPACE(M)",
       ROUND(NVL(USED_SPACE, 0) / SPACE * 100, 2) "USED_RATE(%)",
       NVL(FREE_SPACE, 0) "FREE_SPACE(M)"
  FROM (SELECT TABLESPACE_NAME,
               ROUND(SUM(BYTES) / (1024 * 1024), 2) SPACE,
               SUM(BLOCKS) BLOCKS
          FROM DBA_TEMP_FILES
         GROUP BY TABLESPACE_NAME) D,
       (SELECT TABLESPACE_NAME,
               ROUND(SUM(BYTES_USED) / (1024 * 1024), 2) USED_SPACE,
               ROUND(SUM(BYTES_FREE) / (1024 * 1024), 2) FREE_SPACE
          FROM V$TEMP_SPACE_HEADER
         GROUP BY TABLESPACE_NAME) F
 WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
 order by "USED_RATE(%)" desc;
 --查询被谁用了
 SELECT su.username,
        se.sid,
        se.serial#,
        se.sql_address,
        se.machine,
        se.program,
        su.tablespace,
        su.segtype,
        su.contents
   FROM v$session se, v$sort_usage su
  WHERE se.saddr = su.session_addr;
--temp表空间
SELECT A.tablespace_name tablespace,
       D.mb_total,
       SUM(A.used_blocks * D.block_size) / 1024 / 1024 mb_used,
       D.mb_total - SUM(A.used_blocks * D.block_size) / 1024 / 1024 mb_free
  FROM v$sort_segment A,
       (SELECT B.name, C.block_size, SUM(C.bytes) / 1024 / 1024 mb_total
          FROM v$tablespace B, v$tempfile C
         WHERE B.ts# = C.ts#
         GROUP BY B.name, C.block_size) D
 WHERE A.tablespace_name = D.name
 GROUP by A.tablespace_name, D.mb_total;
--undo 表空间
select (a.all_bytes - b.busy_bytes) / 1024 / 1024
  from (SELECT SUM(BYTES) all_bytes
          FROM DBA_DATA_FILES
         WHERE TABLESPACE_NAME = 'UNDOTBS3') a,
       (SELECT NVL(SUM(BYTES), 0) busy_bytes
          FROM DBA_UNDO_EXTENTS
         WHERE TABLESPACE_NAME = 'UNDOTBS3'
           AND STATUS IN ('ACTIVE', 'UNEXPIRED')) b;

 

 


--检查哪个占用的最大
select sum(mbytese) from (select segment_name, sum(bytes) / 1024 / 1024 Mbytese
  from user_segments
 where /*segment_type = 'TABLE'
   and*/ tablespace_name = 'TBS_ISAP_D01'
 group by segment_name);

 ----查询表空间包含的对象  上面那个sql查询不到索引信息
SELECT t.owner, t.segment_name, SUM(bytes) / 1024 / 1024 size_MB
  From dba_segments t
 WHERE t.tablespace_name = 'PERFDB_IDX'
 GROUP BY t.owner, t.segment_name
/* having SUM(bytes) >1024*1024*1024*/
 ORDER BY SUM(bytes) desc;

--LOBSEGMENT 类型
select * from user_segments a where a.segment_name='SYS_LOB0000045851C00005$$';


--查询是存储哪个表
select * from user_lobs a where a.segment_name='SYS_LOB0000045851C00005$$';--table:WFE_TBL_CUSTOM_VARIABLES column: MARSHALLED_DATA

 

 

 

 

 

原创粉丝点击