表空间和临时表空间利用率

/*查看数据库实例名*/
select instance_name from v$instance;

/*查看表空间大小*/
select bytes/1024/1024, segment_name,owner from dba_segments order by bytes desc;


Select Tablespace_Name,Sum(bytes)/1024/1024 from Dba_Segments Group By Tablespace_Name

 

 

/*表空间利用率*/
select 
a.a1 表空间名称,
c.c2 类型,
c.c3 区管理,
b.b2/1024/1024 表空间大小M,
(b.b2-a.a2)/1024/1024 已使用M,
substr((b.b2-a.a2)/b.b2*100,1,5) 利用率
from 
(select  tablespace_name a1, sum(nvl(bytes,0)) a2 from dba_free_space group by tablespace_name) a,
(select tablespace_name b1,sum(bytes) b2 from dba_data_files group by tablespace_name) b,
(select tablespace_name c1,contents c2,extent_management c3  from dba_tablespaces) c 
where a.a1=b.b1 and c.c1=b.b1;

/*数据文件利用率*/
select 
b.file_name 文件名,
b.tablespace_name 表空间,
b.bytes/1024/1024 大小M,
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024  已使用M,
substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5)  利用率 
from dba_free_space a,dba_data_files b 
where a.file_id=b.file_id 
group by b.tablespace_name,b.file_name,b.bytes 
order by b.tablespace_name;


 
/* 临时表空间相关*/
 
select sum(bytes)/1024/1024 toltemp from dba_temp_files;
select sum(blocks)*8192/1024/1024 temp_use from v$sort_usage;

/*临时表空间利用率1*/
select b.toltemp,a.temp_use,a.temp_use/b.toltemp*100 from 
(select sum(blocks)*8192/1024/1024 temp_use from v$sort_usage) a, (select sum(bytes)/1024/1024 toltemp from dba_temp_files) b;

 


/*临时表空间利用率2*/
SELECT TMP_TBS.TABLESPACE_NAME, 
       SUM(TMP_TBS.TOTAL_MB) TOTAL_MB, 
       SUM(USED_TOT.USED_MB) USED_MB, 
       SUM(USED_TOT.USED_MB) / SUM(TMP_TBS.TOTAL_MB) * 100 USED_PERSENT 
  FROM (SELECT TABLESPACE_NAME, SUM(BYTES) / 1024 / 1024 TOTAL_MB 
          FROM DBA_TEMP_FILES 
         GROUP BY TABLESPACE_NAME) TMP_TBS, 
       (SELECT TMP_USED.TABLESPACE, 
               SUM(TMP_USED.BLOCKS * PARA.DB_BLOCK_SIZE) / 1024 / 1024 USED_MB 
          FROM V$SORT_USAGE TMP_USED, 
               (SELECT VALUE DB_BLOCK_SIZE 
                  FROM V$PARAMETER 
                 WHERE NAME = 'db_block_size') PARA 
         GROUP BY TMP_USED.TABLESPACE) USED_TOT 
where TMP_TBS.TABLESPACE_NAME = USED_TOT.TABLESPACE(+) 
GROUP BY TMP_TBS.TABLESPACE_NAME;

/*查找TOP10 session占用临时表空间大小*/
select * from (
 select sess.SID,  segtype, blocks*8/1000 "MB" ,sql_text
 from v$sort_usage sort, v$session sess ,v$sql sql
 where sort.SESSION_ADDR = sess.SADDR
 and sql.ADDRESS = sort.SQLADDR (+)
 order by blocks desc
 ) a
 where rownum<10
 

 
/*查看临时表空间中排序段和数据段的使用情况*/
SELECT TMP_TBS.TABLESPACE_NAME, USED_TOT.SEGTYPE TEMP_SEG_TYPE,
SUM(TMP_TBS.TOTAL_MB) TOTAL_MB,
SUM(USED_TOT.USED_MB) USED_MB,
SUM(USED_TOT.USED_MB) / SUM(TMP_TBS.TOTAL_MB) * 100 USED_PERSENT
FROM (SELECT TABLESPACE_NAME, SUM(BYTES) / 1024 / 1024 TOTAL_MB
FROM DBA_TEMP_FILES
GROUP BY TABLESPACE_NAME) TMP_TBS,
(SELECT TMP_USED.TABLESPACE, TMP_USED.SEGTYPE,
SUM(TMP_USED.BLOCKS * PARA.DB_BLOCK_SIZE) / 1024 / 1024 USED_MB
FROM V$SORT_USAGE TMP_USED,
(SELECT VALUE DB_BLOCK_SIZE
FROM V$PARAMETER
WHERE NAME = 'db_block_size') PARA
GROUP BY TMP_USED.TABLESPACE, TMP_USED.SEGTYPE) USED_TOT
where TMP_TBS.TABLESPACE_NAME = USED_TOT.TABLESPACE(+)
GROUP BY TMP_TBS.TABLESPACE_NAME, USED_TOT.SEGTYPE;

 

本文出自 “janywang” 博客,转载请与作者联系!

你可能感兴趣的:(职场,表空间,临时表空间,休闲,利用率)