首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 9i 數據字典使用指南:本質解析、EM 瀏覽表編輯器與管理員信息獲取

     編輯:Oracle 資料庫相關知識

數據字典本質

數據字典 = 存儲數據庫元數據的系統表 + 視圖集合,屬於 SYS 用戶,存放於 SYSTEM 表空間。核心視圖前綴:DBA_ (全部)、ALL_ (可訪問)、USER_ (擁有)。

EM 瀏覽數據字典

  1. 「管理目標導航器」展開數據庫 → 「字典管理」
  2. 雙擊目標視圖 (如 DBA_TABLES) 打開「表編輯器」
  3. 查看列定義、抽樣數據、索引、約束、授權、統計信息

截圖:

常用字典視圖速查

視圖用途
DBA_USERS / USER_USERS用戶賬號、默認表空間、Profile、狀態
DBA_TABLES / USER_TABLES表結構、存儲、分區、統計
DBA_TAB_COLUMNS列定義、數據類型、長度、默認值
DBA_INDEXES / USER_INDEXES索引名、類型、唯一性、表空間、狀態
DBA_CONSTRAINTS約束名、類型(P/U/R/C)、引用表、狀態
DBA_SEGMENTS段空間佔用、Extent 數、High Water Mark
DBA_FREE_SPACE表空間剩餘空間、碎片分布
DBA_ROLE_PRIVS用戶/角色被授予的角色
DBA_SYS_PRIVS用戶/角色被授予的系統權限
DBA_TAB_PRIVS對象授權詳情

管理員核心查詢腳本

-- 所有用戶狀態
SELECT username, account_status, default_tablespace, profile
FROM dba_users;

-- 表空間使用率
SELECT tablespace_name,
       ROUND(used_mb/1024,2) used_gb,
       ROUND(free_mb/1024,2) free_gb,
       ROUND(used_pct,1) pct_used
FROM (
  SELECT tablespace_name,
         SUM(bytes)/1024/1024 used_mb
  FROM dba_segments GROUP BY tablespace_name
) u
JOIN (
  SELECT tablespace_name,
         SUM(bytes)/1024/1024 free_mb
  FROM dba_free_space GROUP BY tablespace_name
) f USING (tablespace_name)
JOIN (
  SELECT tablespace_name,
         ROUND(100*(1-SUM(bytes)/MAX(bytes)),1) used_pct
  FROM dba_data_files GROUP BY tablespace_name
) p USING (tablespace_name);

最佳實踐

  • 開發/運維統一使用 DBA_ 視圖 (需 SELECT_CATALOG_ROLE)。
  • 避免直接查詢 SYS 基表 (如 OBJ$, TAB$),結構可能跨版本變更。
  • 定期導出字典快照對比,審計結構變更。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved