oracle temp 表空間

kakaxi9521發表於2019-05-21

1.  查詢空間的使用率,有用檢視dba_temp_file,   v$temp_extent_pool。

select c.tablespace_name,       

       to_char(c.bytes / 1024 / 1024 / 1024, '99,999.999') total_gb,       

       to_char((c.bytes - d.bytes_used) / 1024 / 1024 / 1024, '99,999.999') free_gb,       

       to_char(d.bytes_used / 1024 / 1024 / 1024, '99,999.999') use_gb,       

       to_char(d.bytes_used * 100 / c.bytes, '99.99') || '%' use

  from (select tablespace_name, sum(bytes) bytes        

          from dba_temp_files

         GROUP by tablespace_name) c,       

       (select tablespace_name, sum(bytes_cached) bytes_used        

          from v$temp_extent_pool

         GROUP by tablespace_name) d

 where c.tablespace_name = d.tablespace_name;


2.   檢視那些使用者正在適用temp表空間,用到檢視v$tempseg_usage,  v$temp_space_header

select a.username,       

       a.sql_id,       

       a.SEGTYPE,

       a.tablespace,       

       b.BYTES_USED / 1024 / 1024 / 1024,      

       b.BYTES_FREE / 1024 / 1024 / 1024

  from V$TEMPSEG_USAGE a  ,V$TEMP_SPACE_HEADER b 

  where a.TABLESPACE = b.tablespace_name 

  and a.tablespace='TEMP';


3. 根據查詢到的sql_id值去檢視那些session正在適用temp。



引用的連線:

http://blog.itpub.net/31547066/viewspace-2286048/

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21374452/viewspace-2645056/,如需轉載,請註明出處,否則將追究法律責任。

相關文章