貼一個求表空間的sql 語句
這段時間經常發現用以前的sql查出來的表空間情況不夠準確,先是表空間佔用達到100%的用以前的SQL語言查不出來,後來發現表空間狀態為offline的也查不出來,也是自己在原來的語句的基礎上寫了一個,貌似效率不夠高,好在每天也只是跑一次而已,貼出來供大家參考。
set linesize 300
set pagesize 999
col TABLESPACE_NAME format a30
col SPACE_STATUS format a10
col "SUM_SPACE(M)" format 999999999.9
col "USED_SPACE(M)" format 999999999.9
col SPACE_TYPE format a12
col "USED_RATE(%)" format a12
SELECT Z.*,V.STATUS SPACE_STATUS FROM (SELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",SPACE-NVL(FREE_SPACE,0) "USED_SPACE(M)", TO_CHAR(ROUND((1-NVL(FREE_SPACE,0)/SPACE)*100,2),'990.99')||'%' "USED_RATE(%)", 'Permanent' SPACE_TYPE
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(+)) Z,(SELECT A.TABLESPACE_NAME,MAX(B.STATUS) STATUS FROM DBA_DATA_FILES A,V$DATAFILE B WHERE A.FILE_ID = B.FILE# GROUP BY TABLESPACE_NAME) V
WHERE Z.TABLESPACE_NAME = V.TABLESPACE_NAME(+)
UNION ALL
SELECT Z.*,V.STATUS SPACE_STATUS FROM (SELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",USED_SPACE "USED_SPACE(M)",TO_CHAR(ROUND(NVL(USED_SPACE,0)/SPACE*100,2),'990.99')||'%' "USED_RATE(%)" ,'Temporary' SPACE_TYPE
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(+)) Z,(SELECT A.TABLESPACE_NAME,MAX(B.STATUS) STATUS FROM DBA_DATA_FILES A,V$TEMPFILE B WHERE A.FILE_ID = B.FILE# GROUP BY TABLESPACE_NAME) V
WHERE Z.TABLESPACE_NAME = V.TABLESPACE_NAME(+);
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12216142/viewspace-695245/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 透過sql語句建立表時指定表空間的語法SQL
- mysql空間大小的SQL語句MySql
- SQL語句大全—檢視錶空間(一)SQL
- mysql查表空間大小的SQL語句MySql
- Oracle表、索引修改表空間語句Oracle索引
- 管理表空間(表空間的屬性)轉貼
- 使用一個T-SQL語句批量查詢資料表佔用空間及其行數SQL
- 檢查表空間使用率SQL語句SQL
- SQL語句大全—檢視錶空間(二)SQL
- Oracle - 表空間相關常用操作語句Oracle
- 將表從一個表空間遷移到另外一個表空間
- 取消請求的sql語句SQL
- oracle 查詢表空間使用率的語句Oracle
- 12c 資料泵提取建表空間語句和建表語句
- 用SQL語句檢查CPU和磁碟空間SQL
- Oracle檢視使用者預設表空間使用情況的sql語句OracleSQL
- 表空間sqlSQL
- 一個SQL語句的優化SQL優化
- DM7聯機執行SQL語句進行表空間備份SQL
- 學習筆記----一句SQL語句寫個乘法表筆記SQL
- Sql建表語句SQL
- sql 建表語句SQL
- sql語句建立表SQL
- IMPDP 多個表空間物件匯入到一個表空間中物件
- oracle中用sql計算一個表佔用的空間的大小OracleSQL
- 移動一個帶有lob欄位的表到另外一個表空間的語法
- 轉貼:Oracle維護常用SQL語句OracleSQL
- Sql server中時間查詢的一個比較快的語句(轉)SQLServer
- Oracle 檢視錶空間的大小及使用情況sql語句OracleSQL
- 檢視單個SQL消耗TEMP表空間以及TEMP表空間使用率SQL
- 臨時表空間達到幾十G,執行SQL語句報錯解決SQL
- 一條全表掃描sql語句的分析SQL
- oracle匯出使用者、表空間和角色的建立語句Oracle
- 一個頗有意思的SQL語句SQL
- 修改表空間的SQL程式碼SQL
- oracle UNDO表空間一個bug——undo表空間快速擴充套件Oracle套件
- Oracle建立表空間、使用者、分配許可權語句Oracle
- 使用SQL語句將資料庫中的兩個表合併成一張表SQL資料庫