查詢表空間使用情況的指令碼

記錄每一次錯誤發表於2018-07-27

看網上由很多查詢資料庫表空間的指令碼,在此基礎上我根據自己的需要又新增了自己需要查詢的東西,指令碼如下:
Select Distinct a.Tablespace_Name ,
                Trunc(((Free_Space) / Total_Space) * 100) || '%' ,
                To_Char(Free_Space / 1024 / 1024 / 1024, '9999999990.99') || 'G' Free_Space ,
                To_Char(Total_Space / 1024 / 1024 / 1024, '9999999990.99') || 'G'  Total_Space, 
                c.autoextensible,                
                c.maxbytes/1024/1024/1024||'G' maxbytes,
                (c.increment_by*8192) / 1024/1024||'M'               
  From (Select Tablespace_Name, Sum(Bytes) Free_Space
          From Dba_Free_Space
         Group By Tablespace_Name) a,
       (Select Tablespace_Name, Sum(Bytes) Total_Space
          From Dba_Data_Files
         Group By Tablespace_Name) b,
         dba_data_files c
 Where a.Tablespace_Name = b.Tablespace_Name  and a.tablespace_name = c.Tablespace_Name   and c.tablespace_name = b.Tablespace_Name
 order by  2 ;

解釋如下:

Tablespace_Name    ---表空間的名字。

Trunc(((Free_Space) / Total_Space) * 100) || '%'    ---表空間的空閒率,這比例越小,說明資料的剩餘的空間越大,這比例越大,說明資料的剩餘的空間越小。

To_Char(Free_Space / 1024 / 1024 / 1024, '9999999990.99') || 'G' Free_Space  ---表空間剩餘的多少空間。大小為G,大家可以根據自己的實際情況調整。可以To_Char(Free_Space / 1024 / 1024 , '9999999990.99') || 'M' Free_Space,計算出來的結果是按M來算的。

To_Char(Total_Space / 1024 / 1024 / 1024, '9999999990.99') || 'G'  Total_Space   ---表空間總的大小。大小為G,大家可以根據自己的實際情況調整。

c.autoextensible,   ----資料檔案是否開啟自動增長。yes表示是開啟,ON表示未開啟。

c.maxbytes/1024/1024/1024||'G' maxbytes,   ---資料檔案最大能增大到多少。單位為G,說的直白點,就是這個資料檔案增長到這個數值以後就不在自動增長了。一般情況下,一個資料檔案最大為32g,生產環境中一般是新增資料檔案,一個資料檔案為30G,不開自動增長。

(c.increment_by*8192) / 1024/1024||'M'    ---資料檔案開啟自動增長後,每次增加多少,大小為M。


查詢某個表空間的具體資訊

select FILE_NAME,TABLESPACE_NAME,BYTES/1024/1024/1024||'G',AUTOEXTENSIBLE,MAXBYTES/1024/1024/1024||'G'    from  dba_data_files  where  TABLESPACE_NAME='表空間名字';


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

相關文章