數據字典是 Oracle 存放關於數據庫內部信息的地方,其用途是用來描述數據庫內部的運行和管理情況。比如,一個數據表的所有者、創建時間、所屬表空間、用戶訪問權限等信息,這些信息都可以在數據字典中查找到。當使用數據遇到困難時,就可以通過查詢數據字典來提供幫助信息。
一、Oracle 數據字典概述
Oracle 數據字典的名稱由前綴和后綴組成,使用“_”連接,其代表的含義如下:
- dba_ :包含數據庫實例的所有對象信息。
- v$_ :當前實例的動態視圖,包含系統管理和系統優化等所使用的視圖。
- user_ :記錄用戶的對象信息。
- gv_ :分布式環境下所有實例的動態視圖,包含系統管理和系統優化使用的視圖。
- all_ :記錄用戶的對象信息機被授權訪問的對象信息。
二、Oracle 常用數據字典
1、基本數據字典
基本數據字典主要包括邏輯存儲結構和物理存儲結構的數據表,另外,還包括一些描述其他數據對象信息的表,如下表:
| 數據字典名稱 | 說明 |
| dba_tablespaces | 關於表空間的信息 |
| dba_ts_quotas | 所有用戶表空間限額 |
| dba_free_space | 所有表空間中的自由分區 |
| dba_segments | 描述數據庫中所有段的存儲空間 |
| dba_extents | 數據庫中所有分區的信息 |
| dba_tables | 數據庫中所有數據表的描述 |
| dba_tab_columns | 所有表、視圖以及簇的列 |
| dba_views | 數據庫中所有視圖的信息 |
| dba_synonyms | 關於同義詞的信息查詢 |
| dba_sequences | 所有用戶序列信息 |
| dba_constraints | 所有用戶表的約束信息 |
| dba_indexs | 關於數據庫中所有索引的描述 |
| dba_ind_columns | 在所有表及簇上壓縮索引的列 |
| dba_triggers | 所有用戶的觸發器信息 |
| dba_source | 所有用戶存儲過程信息 |
| dba_data_files | 查詢關於數據庫文件的信息 |
| dba_tab_grants/privs | 查詢關於對象授權的信息 |
| dba_objects | 數據庫中所有的對象 |
| dba_users | 關於數據庫中所有用戶的信息 |
2、常用動態性能視圖
Oracle 系統內部提供了大量的動態性能視圖,之所以說是“動態”,是因為這些視圖的信息在數據庫運行期間會不斷地更新。動態性能視圖以 v$ 作為名稱前綴,這些視圖提供了關於內存和磁盤的運行情況,用戶只能進行只讀訪問而不能修改它們。如下表所示:
| 數據字典名稱 | 說 明 |
| v$database | 描述關於數據庫的相關信息 |
| v$datafile | 數據庫使用的數據文件信息 |
| v$log | 從控制文件中提取有關重做日志組的信息 |
| v$logfile | 有關實例重置日志組文件名及其位置的信息 |
| v$archived_log | 記錄歸檔日志文件的基本信息 |
| v$archived_dest | 記錄歸檔日志文件的路徑信息 |
| v$controlfile | 描述控制文件的相關信息 |
| v$instance | 記錄實例的基本信息 |
| v$system_parameter | 顯示實例當前有效的參數信息 |
| v$sga | 顯示實例的 SGA 區的大小 |
| v$sgastat | 統計 SGA 使用情況的信息 |
| v$parameter | 記錄初始化參數文件中所有項的值 |
| v$lock | 通過訪問數據庫會話,設置對象鎖的所有信息 |
| v$session | 有關會話的信息 |
| v$sqltext | 記錄 SQL 語句的詳細信息 |
| v$sqltext | 記錄 SQL 語句的語句信息 |
| v$bgprocess | 顯示后台進程信息 |
| v$process | 當前進程的信息 |
