是元數據的集合,從邏輯上和物理上描述了數據庫及內容,存儲於SYSTEM與SYSAUX表空間內的若幹段。
SYS用戶擁有所有的數據字典表,數據字典基本壹般以$結尾,如col$,tab$等,這些數據字典存放在system表空間中。
數據字典的形成
在數據庫創建階段創建,在使用階段維護和更新
無法通過DML操作來修改,只能通過相關的命令修改系統,來達到間接修改數據字典。
數據字典的特點
每個Oracle數據庫的中樞
描述數據庫和它的對象
包含只讀的表和視圖
存儲在SYSTEM表空間中
擁有者是SYS用戶
由Oracle服務器自己維護
用SELECT訪問
數據字典內容:
數據字典提供下列信息:
邏輯和物理的數據庫結構
對象的定義和空間分配
壹致性限制
用戶
角色
權限
審計
數據字典的主要用途:
Oracle服務器用它查找下列信息:
用戶
對象
存儲結構
Oracle服務器修改數據字典當DDL語句執行的時候.
用戶和管理員們利用它了解數據庫的信息.
基礎表和數據字典視圖:
數據字典包括兩個部分:
基礎表
存儲數據庫的描述
CREATE DATABASE命令創建(sql.bsq)
數據字典視圖
用於簡化基礎表的信息
通過PUBLIC同義詞訪問
由腳本catalog.sql創建
數據字典基表中的數據很難看懂。因此,很少人直接訪問這些基表。取而代之的是數據字典視圖。
數據字典視圖分為類,它們以前輟來區分,前輟分別為:USER、ALL、DBA
USER_* 用戶所擁有的對象信息
ALL_* 用戶能訪問的對象信息
DBA_* 整個數據庫中的對象信息
創建數據字典視圖:
建庫後,運行以下腳本創建的
$ORACLE_HOME/rdbms/admin/catalog.sql 創建常用的數據字典和同義詞
$ORACLE_HOME/rdbms/admin/catproc.sql 創建內建的存儲過程、包等pl/sql對象
DBCA建庫時會自動運行這兩個腳本,但如果手動建庫的話,需手動運行。
常用的數據字典:
壹般的概況: TAB,DICTIONARY, DICT_COLUMNS
對象: DBA_TABLES, DBA_INDEXES, DBA_TAB_COLUMNS, DBA_CONSTRAINTS --->user_ ,all_
空間分配: DBA_SEGMENTS, DBA_EXTENTS
數據庫結構: DBA_TABLESPACES, DBA_DATA_FILES
動態性能視圖:
是將內存裏的數據或控制文件裏的數據以表的形式展現出來,它們實際都是虛擬表,並不是真正的表
只要數據庫在運行,就會不斷更新動態性能視圖
壹旦數據庫關閉或崩潰,則動態性能視圖裏的數據就丟失,當數據庫重新啟動後,數據將會被更新
所有的動態性能視圖名稱都存放在v$fixed_table裏。這些動態性能視圖都是以V_$開頭,屬主是sys
oracle為每個動態性能視圖都創建了同義詞,同義詞將中間的“_”去掉了,形成以v$開頭
常用的數據字典視圖、動態性能視圖:
dba_objects
dba_tables
dba_users
dba_tablespaces
V$CONTROLFILE 控制文件信息
V$DATABASE 數據庫信息
V$DATAFILE 數據文件信息
V$INSTANCE 實例信息
V$PARAMETER 參數信息
V$SESSION 會話信息
V$SGA SGA信息
V$SGAINFO SGA信息
V$TABLESPACE 表空間信息
V$THREAD
V$VERSION
V$option
v$parameter顯示的是session級的參數,也就是當前session的參數信息。
如果沒有使用alter session單獨設置當前session的參數值,那麽默認和system級的參數應該是壹樣的。
v$system_parameter顯示的是system級的參數,保存的是使用alter system修改的值(scope=both或者scope=memory)。
上面兩個都是當前已經生效的參數值。對於使用spfile的庫,也可以暫時只修改spfile中的
值。v$spparameter顯示的就是保存在spfile中的參數值(scope=spfile)。