天天看點

資料字典解析

生成順序:X$--->GV$--->V$---GV_$/V_$--->GV$/V$(同義詞)

X$表:

     X$表是Oracle資料庫的核心部分,用于跟蹤内部資料庫資訊,維持資料庫的正常運作、

     X$表是加密命名的,而且Oracle不做文檔說明,這部分知識是Oracle公司的技術機密,Oracle通過這些X$建立其他大量視圖,提供使用者查詢管理資料庫之用。

     X$表是Oracle資料庫運作的基礎,在資料庫啟動時由Oracle應用程式動态建立。這部分表對資料庫來說至關重要,是以Oracle不允許SYSDBA之外的使用者直接通路,顯示授權不被允許。

     研究X$表的一個好辦法是借用Oracle的AUTOTRACE功能,當查詢一些常用視圖的時候,可以通過AUTOTRACE功能發現這些view的底層表。

     set autotrace trace explain;

     select * from v$parameter;     

     set autotrace off;

資料字典表【Data Dictionary Table】:

     資料字典表用來存儲表、索引、限制以及其他資料庫結構的資訊,這些對象通常以v$結尾,如:tab$,obj$,ts$等,在建立資料庫的時候通過運作sql.bsq腳本來建立。

     sqp.bsq是非常重要的一個檔案,其中包含了資料字典表的定義及注釋說明,每個試圖深入學習Oracle資料庫的使用者都應該仔細閱讀一下該檔案,該檔案位于$ORACLE_HOME/rdbms/admin/目錄下。

動态性能視圖:

     動态性能(V$)視圖記錄了資料庫運作時資訊和統計資料,大部分動态性能視圖被實時更新以反映資料庫目前狀态。

     Oracle通過動态性能視圖将Oracle資料庫的狀态展示出來,提供給使用者和資料庫管理者,Oracle對v$視圖給出了詳細的文檔說明供開發管理人員參考,是研究和管理資料庫的主要依據。

     GV$和V$視圖:

          在資料庫啟動時,Oracle動态建立X$表,在此基礎上,Oracle建立了GV$和V$視圖,G表示global,除了一些特例外,每個v$視圖都有一個對應的gv$視圖存在,GV$視圖的産生是為了滿足RAC環境的需要,在RAC環境中,查詢GV$視圖傳回所有執行個體資訊,而每個V$視圖是基于GV$視圖,增加了inst_id列的where條件限制建立的,隻包含目前連接配接執行個體資訊。

     GV_$,V_$視圖和V$,GV$同義詞:

     在GV$和V$之後,Oracle建立了GV_$和V_$視圖,随後為這些視圖建立了公用同義詞。

     這些工作都是通過catalog.sql腳本實作的【腳本位于:$ORACLE_HOME/rdbms/admin/目錄下】

     V_$和GV_$視圖是基于V$和GV$視圖首先被建立,然後基于V_$和GV_$視圖的同義詞被建立

通過V_$視圖,Oracle把V$視圖和普通使用者隔離,V_$視圖的權限可以授予其他使用者,而Oracle 不允許任何對于V$視圖的直接授權。