首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle Data Dictionary 深度活用指南

     編輯:Oracle 資料庫基礎

善用 Data Dictionary 讓 DBA 事半功倍

Data Dictionary 是 Oracle 核心中繼資料倉儲,隨資料庫建立而生、隨物件變動而更新,僅供查詢不可手工修改。掌握 DICTIONARY/DICT_COLUMNS 兩大索引視圖,即可快速定位任何中繼資料。

核心索引視圖

  • DICTIONARY (同義詞 DICT):所有字典表名稱與說明
  • DICT_COLUMNS:所有字典表欄位名稱與說明

快速查找技巧

找出所有與 Index 相關的字典表

SELECT * FROM dictionary WHERE INSTR(comments, 'index') > 0;

查看 USER_INDEXES 欄位詳細含義

SELECT column_name, comments
FROM dict_columns
WHERE table_name = 'USER_INDEXES';

高頻實用查詢分類速查

1. 用戶資訊

-- 當前用戶預設表空間
SELECT username, default_tablespace FROM user_users;

-- 當前用戶角色
SELECT * FROM user_role_privs;

-- 系統權限與物件權限
SELECT * FROM user_sys_privs;
SELECT * FROM user_tab_privs;

2. 表物件管理

-- 所有表清單
SELECT * FROM user_tables;

-- 表名包含 LOG 的物件
SELECT object_name, object_id
FROM user_objects
WHERE INSTR(object_name, 'LOG') > 0;

-- 表建立時間
SELECT object_name, created
FROM user_objects
WHERE object_name = UPPER('&table_name');

-- 表大小 (MB)
SELECT SUM(bytes)/(1024*1024) AS "size(M)"
FROM user_segments
WHERE segment_name = UPPER('&table_name');

-- 置於 Keep Pool 的表
SELECT table_name, cache
FROM user_tables
WHERE INSTR(cache, 'Y') > 0;

進階建議

  • 善用 ALL_/DBA_ 前綴視圖跨 Schema 查詢 (需權限)
  • 搭配 DBMS_METADATA.GET_DDL 可直接產出物件建立腳本
  • 定期匯出字典統計資訊輔助容量規劃

Data Dictionary 是「資料庫的說明書」,熟練查詢能大幅減少查閱官方文件的時間。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved