Oracle - 表空間使用情況及相關字典

襲冷發表於2018-01-15
一、表空間的使用情況
    1、資料表空間

        檢視資料表空間已經已分配磁碟的空間的使用情況

---------------------- 查詢語句 ----------------------
SELECT 
    A.TABLESPACE_NAME, A.BYTES/1024/1024 "DISK_SIZE(MB)", (A.BYTES-B.BYTES)/1024/1024 "USED_SIZE(MB)", 
    B.BYTES/1024/1024 "FREE_SIZE(MB)", ROUND(((A.BYTES-B.BYTES)/A.BYTES)*100,2) "USED_RATE(%)" 
FROM 
    (SELECT TABLESPACE_NAME,SUM(BYTES) BYTES FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) A, 
    (SELECT TABLESPACE_NAME,SUM(BYTES) BYTES, MAX(BYTES) LARGEST FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) B 
WHERE 
    A.TABLESPACE_NAME=B.TABLESPACE_NAME;

---------------------- 查詢結果 ----------------------
TABLESPACE_NAME                DISK_SIZE(MB) USED_SIZE(MB) FREE_SIZE(MB) USED_RATE(%)
------------------------------ ------------- ------------- ------------- ------------
SYSTEM                                  9452      741.1875     8710.8125         7.84
AUDIT                                 204800        179401         25399         87.6
USERS                                  11024     3020.1875     8003.8125         27.4
UNDOTBS2                          94207.9844    1888.04688    92319.9375            2
SYSAUX                                  9802     1971.4375     7830.5625        20.11
UNDOTBS1                          94207.9844    15033.8594     79174.125        15.96
XLGDATA                           560127.969    540417.406    19710.5625        96.48  

        檢視資料表空間的所有資料檔案佔用的磁碟大小、是否自動擴充套件、擴充套件的最大值等資訊
---------------------- 查詢語句 ----------------------
SELECT 
    FILE_NAME, TABLESPACE_NAME, AUTOEXTENSIBLE, INCREMENT_BY, 
    BYTES/1024/1024 "DISK_SIZE(MB)", MAXBYTES/1024/1024 "MAX_SIZE(MB)" 
FROM 
    DBA_DATA_FILES;

---------------------- 查詢結果 ----------------------    
TABLESPACE_NAME      FILE_NAME                                                AUT INCREMENT_BY DISK_SIZE(MB) MAX_SIZE(MB)
-------------------- -------------------------------------------------------- --- ------------ ------------- ------------
SYSTEM               /usr/oracle/oradata/MyOrclDb/system.266.894453801        YES         6400          9452   32767.9844
SYSAUX               /usr/oracle/oradata/MyOrclDb/sysaux.265.894453819        YES         6400          9802   32767.9844
UNDOTBS1             /usr/oracle/oradata/MyOrclDb/undotbs1.258.894453835      YES         6400    32767.9844   32767.9844
UNDOTBS2             /usr/oracle/oradata/MyOrclDb/undotbs2.271.894453849      YES         6400    32767.9844   32767.9844
USERS                /usr/oracle/oradata/MyOrclDb/users.270.894453851         YES         6400         10000   32767.9844
XLGDATA              /usr/oracle/oradata/MyOrclDb/xlgdata01.dbf               YES       131072    32767.9844   32767.9844
XLGDATA              /usr/oracle/oradata/MyOrclDb/xlgdata02.dbf               YES       131072    32767.9844   32767.9844
XLGDATA              /usr/oracle/oradata/MyOrclDb/xlgdata.259.898450067       NO             0         30720            0
XLGDATA              /usr/oracle/oradata/MyOrclDb/xlgdata.272.9092475         NO             0         30720            0
    2、臨時表空間
        檢視臨時表空間已經已分配磁碟的空間的使用情況

---------------------- 查詢語句 ----------------------            
SELECT 
    TABLESPACE_NAME, TABLESPACE_SIZE/1024/1024 AS "TABLESPACE_SIZE(MB)", 
    ALLOCATED_SPACE/1024/1024 AS "ALLOCATED_SIZE(MB)", FREE_SPACE/1024/1024 AS "FREE_SIZE(MB)", 
    round(((TABLESPACE_SIZE - FREE_SPACE)/TABLESPACE_SIZE)*100,2) AS "USED_RATE(%)"
FROM 
    DBA_TEMP_FREE_SPACE;

---------------------- 查詢結果 ----------------------        
TABLESPACE_NAME                TABLESPACE_SIZE(MB) ALLOCATED_SIZE(MB) FREE_SIZE(MB) USED_RATE(%)
------------------------------ ------------------- ------------------ ------------- ------------
TEMP                                    94207.9844         94162.9844         90471         3.97
        檢視TEMP表空間的資料檔案個數,當前大小,是否自動擴充套件
---------------------- 查詢語句 ---------------------- 
SELECT 
    TABLESPACE_NAME, FILE_NAME, BYTES/1024/1024 "CURR_SIZE(MB)", MAXBYTES/1024/1024 "MAX_SIZE(MB)",AUTOEXTENSIBLE  
FROM 
    DBA_TEMP_FILES;

---------------------- 查詢結果 ----------------------     
TABLESPACE_NAME          FILE_NAME                                               CURR_SIZE(MB) MAX_SIZE(MB) AUT
------------------------ ------------------------------------------------------- ------------- ------------ ---
TEMP                     /usr/oracle/oradata/MyOrclDb/temp.257.894453839            32767.9844   32767.9844 YES
TEMP                     /usr/oracle/oradata/MyOrclDb/temp.288.909606971                 30720            0 NO
TEMP                     /usr/oracle/oradata/MyOrclDb/temp.289.909606981                 30720            0 NO
二、表空間相關的資料字典和動態檢視

    V$TABLESPACE                            -- 從控制檔案得到的所有的表空間的名稱和編號
    V$DATAFILE                              -- 所有資料檔案的資訊,包括所屬表空間和表空間號
    V$TEMPFILE                              -- 所有臨時檔案的資訊,包括所屬表空間和表空間號
    V$TEMP_EXTENT_MAP                       -- 本地管理的臨時表空間中所有的範圍資訊
    V$TEMP_EXTENT_POOL                      -- 由每個例項快取和使用的臨時表空間(本地管理的)的狀態
    V$TEMP_SPACE_HEADER                     -- 顯示每個臨時檔案的已用/空閒空間
    V$SORT_SEGMENT                          -- 給定例項中每排序段的資訊。此檢視只有當表空間為臨時型別時才會更新
    V$SORT_USER                             -- 使用者使用的臨時排序空間和臨時的/永久的表空間
    DBA_TABLESPACES, USER_TABLESPACES       -- 描述了所有(使用者可存取的)表空間
    DBA_SEGMENTS, USER_SEGMENTS             -- 在所有表空間內的段資訊(使用者可存取的)
    DBA_EXTENTS, USER_EXTENTS               -- 在所有表空間內的資料盤區的資訊(使用者可存取的)
    DBA_FREE_SPACE, USER_FREE_SPACE         -- 在所有的表空間內的空閒範圍的資訊(使用者可存取的)
    DBA_DATA_FILES                          -- 顯示屬於表空間的資料檔案
    DBA_TEMP_FILES                          -- 顯示屬於表空間的臨時檔案
    DBA_USERS                               -- 所有使用者預設的和臨時表空間
    DBA_TS_QUOTAS                           -- 所有的使用者的表空間限額



相關文章