啟動 SQL*Plus 以 SYSTEM/SYSDBA 權限查詢。視圖名中的 V$ 為前綴標識,定義位於 $ORACLE_HOME/RDBMS/ADMIN/CATALOG.SQL。
| 視圖 | 用途 |
|---|---|
| V$CONTROLFILE | 控制檔資訊 |
| V$DATAFILE | 資料檔資訊 |
| V$LOG | 日誌檔資訊 |
| V$PROCESS | 背景/前台進程資訊 |
| V$SESSION | 用戶會話資訊 |
| V$TRANSACTION | 作用中交易資訊 |
| V$RESOURCE | 資源鎖資訊 |
| V$SGA | 系統全域區記憶體配置 |
所有視圖均可直接 SELECT * FROM view_name 查詢。
Oracle 提供三組前綴視圖,權限遞減:
| 物件類別 | 核心視圖 | 關鍵說明 |
|---|---|---|
| 表與欄位 | DBA/ALL/USER_TABLES | 表基本資訊 |
| DBA/ALL/USER_TAB_COLUMNS | 欄位詳細定義 | |
| 完整性約束 | DBA/ALL/USER_CONSTRAINTS | 約束基本資訊 |
| DBA/ALL/USER_CONS_COLUMNS | 約束涉及欄位 | |
| 視圖 | DBA/ALL/USER_VIEWS | 視圖定義與文字 |
| 序列 | DBA/ALL/USER_SEQUENCES | 序列屬性 |
| 同義詞 | DBA/ALL/USER_SYNONYMS | 同義詞映射 |
| 索引 | DBA/ALL/USER_INDEXES | 索引定義 |
| DBA/ALL/USER_IND_COLUMNS | 索引欄位組合 | |
| 用戶 | DBA_USERS | 用戶屬性、預設表空間、配置檔 |
| 角色 | DBA_ROLES | 角色定義 |
| 表空間配額 | DBA_TS_QUOTAS | 用戶表空間限額 |
| 設定檔 | DBA_PROFILES | 資源限制、密碼策略 |
| 表空間 | DBA_TABLESPACES | 表空間屬性、狀態、區塊管理 |
| 資料檔 | DBA_DATA_FILES | 資料檔路徑、大小、自動擴展 |
| 段 | DBA_SEGMENTS, USER_SEGMENTS | 段級儲存統計 |
| 回滾段 | DBA_ROLLBACK_SEGS, V$ROLLNAME, V$ROLLSTAT | 回滾段狀態與統計 |
DBA/ALL/USER_OBJECTS 涵蓋所有模式物件(表、視圖、序列、同義詞、程序、套件、觸發器、型別等),適合全庫物件盤點。
-- 查詢當前用戶所有表及欄位數
SELECT table_name, COUNT(*) AS col_cnt
FROM user_tab_columns
GROUP BY table_name
ORDER BY col_cnt DESC;
-- 查詢大於 1GB 的段
SELECT owner, segment_name, segment_type, bytes/1024/1024 AS size_mb
FROM dba_segments
WHERE bytes > 1024*1024*1024
ORDER BY bytes DESC;
-- 查詢用戶預設/暫存表空間
SELECT username, default_tablespace, temporary_tablespace
FROM dba_users
WHERE username IN ('APP_USER', 'REPORT_USER');
熟練掌握這套視圖體系,是從「會查詢」進階到「會診斷、會規劃、會治理」的關鍵門檻。