oralce数据库如何查临时表空间的占用率?急急急。

解决方案 »

  1.   

    看网上有的使用了这个表v$TEMP_SPACE_HEADER,麻烦顺表说一下这个表示干什么用的
      

  2.   

    这2个试图可以查看
    v$tempstat
    v$tempfile
      

  3.   

    col Tablespace format a24
    col "% Used" for 99.99
    col tablespace_name for a15
    set linesize 200
    set pagesize 100
    SELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",BLOCKS
    SUM_BLOCKS,SPACE-NVL(FREE_SPACE,0) "USED_SPACE(M)",
    ROUND((1-NVL(FREE_SPACE,0)/SPACE)*100,2) "USED_RATE(%)",FREE_SPACE
    "FREE_SPACE(M)"
    FROM
    (SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2)
    SPACE,SUM(BLOCKS) BLOCKS
    FROM DBA_DATA_FILES
    GROUP BY TABLESPACE_NAME) D,
    (SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) FREE_SPACE
    FROM DBA_FREE_SPACE
    GROUP BY TABLESPACE_NAME) F
    WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)
    UNION ALL --if have tempfile
    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(+);查看所有表空间的使用情况,包括了临时表空间