Oracle10g新增的檢視dba_tablespace_usage_metrics
DBA_TABLESPACE_USAGE_METRICS describes tablespace usage metrics for all types of tablespaces, including permanent, temporary, and undo tablespaces.
Column | Datatype | NULL | Description |
---|---|---|---|
TABLESPACE_NAME | VARCHAR2(30) | Tablespace name | |
USED_SPACE | NUMBER | Total space consumed by the tablespace | |
TABLESPACE_SIZE | NUMBER | Total size of the tablespace | |
USED_PERCENT | NUMBER | Percentage of used space, as a function of the maximum possible tablespace size |
以上是Oracle對該檢視的定義,本以為Oracle提供的檢視會很準,所以平時檢視錶空間的使用情況,為了圖方便,就直接檢視該檢視。
今天一個偶然的機會,發現這個檢視是相當的不準確了。
我用imp方式還原一個資料庫的時候,控制檯已經報錯:
ORA-01658: 無法為表空間 TEST_DB 中的段建立 INITIAL 區
這個錯誤明顯表示表空間的空間不夠了,可我檢視dba_tablespace_usage_metrics檢視,已用空間的比率確很低:
SQL> select * from dba_tablespace_usage_metrics;
TABLESPACE_NAME USED_SPACE TABLESPACE_SIZE USED_PERCENT
------------------------------ ---------- --------------- ------------
TEST_DB 255984 4194302 6.1031370654
------------------------------ ---------- --------------- ------------
TEST_DB 255984 4194302 6.1031370654
這裡看到已用空間之佔了百分之六多點。
我再透過 DBA_DATA_FILE 和 DBA_FREE_SPACE 檢視檢視,結果如下:
SQL> SELECT D.TABLESPACE_NAME,
2 FILE_NAME "FILE_NAME",
3 SPACE "SUM_SPACE(M)",
4 SPACE - NVL(FREE_SPACE, 0) "USED_SPACE(M)",
5 ROUND((1 - NVL(FREE_SPACE, 0) / SPACE) * 100, 2) "USED_RATE(%)",
6 AUTOEXTENSIBLE
7 FROM (SELECT FILE_ID,
8 FILE_NAME,
9 TABLESPACE_NAME,
10 ROUND(SUM(BYTES) / (1024 * 1024), 2) SPACE,
11 SUM(BLOCKS) BLOCKS
12 FROM DBA_DATA_FILES
13 GROUP BY TABLESPACE_NAME, FILE_ID, FILE_NAME) D,
14 (SELECT FILE_ID,
15 TABLESPACE_NAME,
16 ROUND(SUM(BYTES) / (1024 * 1024), 2) FREE_SPACE
17 FROM DBA_FREE_SPACE
18 GROUP BY TABLESPACE_NAME, FILE_ID) E,
19 (SELECT FILE_ID, AUTOEXTENSIBLE FROM DBA_DATA_FILES) F
20 WHERE D.TABLESPACE_NAME = E.TABLESPACE_NAME(+)
21 AND D.FILE_ID = E.FILE_ID(+)
22 AND D.FILE_ID = F.FILE_ID(+)
23 UNION ALL --if have tempfile
24 SELECT D.TABLESPACE_NAME,
25 FILE_NAME "FILE_NAME",
26 SPACE "SUM_SPACE(M)",
27 USED_SPACE "USED_SPACE(M)",
28 ROUND(NVL(USED_SPACE, 0) / SPACE * 100, 2) "USED_RATE(%)",
29 AUTOEXTENSIBLE
30 FROM (SELECT FILE_ID,
31 FILE_NAME,
32 TABLESPACE_NAME,
33 ROUND(SUM(BYTES) / (1024 * 1024), 2) SPACE,
34 SUM(BLOCKS) BLOCKS
35 FROM DBA_TEMP_FILES
36 GROUP BY TABLESPACE_NAME, FILE_ID, FILE_NAME) D,
37 (SELECT FILE_ID,
38 TABLESPACE_NAME,
39 ROUND(SUM(BYTES_USED) / (1024 * 1024), 2) USED_SPACE,
40 ROUND(SUM(BYTES_FREE) / (1024 * 1024), 2) FREE_SPACE
41 FROM V$TEMP_SPACE_HEADER
42 GROUP BY TABLESPACE_NAME, FILE_ID) E,
43 (SELECT FILE_ID, AUTOEXTENSIBLE FROM DBA_TEMP_FILES) F
44 WHERE D.TABLESPACE_NAME = E.TABLESPACE_NAME(+)
45 AND D.FILE_ID = E.FILE_ID(+)
46 AND D.FILE_ID = F.FILE_ID(+)
47 ORDER BY TABLESPACE_NAME, FILE_NAME;
2 FILE_NAME "FILE_NAME",
3 SPACE "SUM_SPACE(M)",
4 SPACE - NVL(FREE_SPACE, 0) "USED_SPACE(M)",
5 ROUND((1 - NVL(FREE_SPACE, 0) / SPACE) * 100, 2) "USED_RATE(%)",
6 AUTOEXTENSIBLE
7 FROM (SELECT FILE_ID,
8 FILE_NAME,
9 TABLESPACE_NAME,
10 ROUND(SUM(BYTES) / (1024 * 1024), 2) SPACE,
11 SUM(BLOCKS) BLOCKS
12 FROM DBA_DATA_FILES
13 GROUP BY TABLESPACE_NAME, FILE_ID, FILE_NAME) D,
14 (SELECT FILE_ID,
15 TABLESPACE_NAME,
16 ROUND(SUM(BYTES) / (1024 * 1024), 2) FREE_SPACE
17 FROM DBA_FREE_SPACE
18 GROUP BY TABLESPACE_NAME, FILE_ID) E,
19 (SELECT FILE_ID, AUTOEXTENSIBLE FROM DBA_DATA_FILES) F
20 WHERE D.TABLESPACE_NAME = E.TABLESPACE_NAME(+)
21 AND D.FILE_ID = E.FILE_ID(+)
22 AND D.FILE_ID = F.FILE_ID(+)
23 UNION ALL --if have tempfile
24 SELECT D.TABLESPACE_NAME,
25 FILE_NAME "FILE_NAME",
26 SPACE "SUM_SPACE(M)",
27 USED_SPACE "USED_SPACE(M)",
28 ROUND(NVL(USED_SPACE, 0) / SPACE * 100, 2) "USED_RATE(%)",
29 AUTOEXTENSIBLE
30 FROM (SELECT FILE_ID,
31 FILE_NAME,
32 TABLESPACE_NAME,
33 ROUND(SUM(BYTES) / (1024 * 1024), 2) SPACE,
34 SUM(BLOCKS) BLOCKS
35 FROM DBA_TEMP_FILES
36 GROUP BY TABLESPACE_NAME, FILE_ID, FILE_NAME) D,
37 (SELECT FILE_ID,
38 TABLESPACE_NAME,
39 ROUND(SUM(BYTES_USED) / (1024 * 1024), 2) USED_SPACE,
40 ROUND(SUM(BYTES_FREE) / (1024 * 1024), 2) FREE_SPACE
41 FROM V$TEMP_SPACE_HEADER
42 GROUP BY TABLESPACE_NAME, FILE_ID) E,
43 (SELECT FILE_ID, AUTOEXTENSIBLE FROM DBA_TEMP_FILES) F
44 WHERE D.TABLESPACE_NAME = E.TABLESPACE_NAME(+)
45 AND D.FILE_ID = E.FILE_ID(+)
46 AND D.FILE_ID = F.FILE_ID(+)
47 ORDER BY TABLESPACE_NAME, FILE_NAME;
TABLESPACE_NAME FILE_NAME SUM_SPACE(M) USED_SPACE(M) USED_RATE(%) AUTOEXTENSIBLE
------------------------------ -------------------------------------------------------------------------------- ------------ ------------- ------------ --------------
TEST_DB /oracle/database/orcl/TEST_DB 2000 1976.31 98.82 YES
------------------------------ -------------------------------------------------------------------------------- ------------ ------------- ------------ --------------
TEST_DB /oracle/database/orcl/TEST_DB 2000 1976.31 98.82 YES
在此,我省略掉了其他無關的資訊。
透過這個可以得出一個結論,dba_tablespace_usage_metrics檢視提供的資訊不可靠,不能嫌麻煩,還得從DBA_DATA_FILE 和 DBA_FREE_SPACE 檢視查詢。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9399028/viewspace-687702/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle11g新增檢視查詢表空間使用率DBA_TABLESPACE_USAGE_METRICSOracle
- 使用SQL指令碼檢視錶空間使用率和使用dba_tablespace_usage_metrics檢視的區別SQL指令碼
- oracle10g新特性——物化檢視Oracle
- oracle10g materialized view物化檢視示例OracleZedView
- ZT oracle10g新特性——物化檢視Oracle
- oracle10g 檢視SQL執行計劃OracleSQL
- Linux下檢視、新增及配置Linux
- 動態新增子檢視 UIView 的正確方法UIView
- Oracle10G新增NO提示Oracle
- Oracle10g 查詢統計資訊的一些檢視Oracle
- 【Database】Oracle10g檢視正在執行的儲存過程DatabaseOracle儲存過程
- oracle10g nested materialized view巢狀物化檢視示例OracleZedView巢狀
- oracle10g物化檢視之dbms_mview.explain_mviewOracleViewAI
- 如何把ABAP檢視新增到SAPGUI的收藏夾裡GUI
- Oracle 10g 新增的dba_tab_modifications檢視Oracle 10g
- Django(27)Django類檢視新增裝飾器Django
- Xamarin iOS教程之新增和定製檢視iOS
- oracle10g partition分割槽表與物化檢視materialized viewOracleZedView
- 與oracle10g data guard(dg)緊密關聯的相關檢視Oracle
- 【Linux】-- 環境變數 path 的檢視、新增及刪除Linux變數
- 11 UML中的邏輯檢視、程序檢視、實現檢視、部署檢視
- oracle10g中部分檢視查詢非常‘慢“問題解決Oracle
- 如何把一個ABAP檢視新增到SAP GUI的收藏夾裡GUI
- Oracle10g新增DBMS_MONITOR包Oracle
- 在Oracle10g 新增ASM磁碟組OracleASM
- Oracle10g新增CONVERT語法Oracle
- 新增元件的視窗元件
- oracle10g rac_dbms_service_dba_service系列檢視學習筆記Oracle筆記
- ASP.NET Core 5.0 MVC中的檢視分類——佈局檢視、啟動檢視、具體檢視、分部檢視ASP.NETMVC
- 在檢視類裡新增左鍵響應函式OnLButtonDown函式
- 普通檢視和物化檢視的區別
- MySQL資料庫檢視:檢視定義、建立檢視、修改檢視MySql資料庫
- Oracle10g新增DBMS_MONITOR包(二)Oracle
- Oracle10g新增DBMS_MONITOR包(一)Oracle
- Oracle10g新增BLOCK CHANGE TRACKING功能OracleBloC
- centos7新增普通使用者用於檢視日誌檔案及檢視centos使用者CentOS
- Oracle 12C R2-新特性-新增兩個檢視:方便檢視trace檔案和內容Oracle
- Oracle普通檢視和物化檢視的區別Oracle