?這位大佬
詳解oracle資料字典
oracle通過資料字典來管理和展現資料庫資訊,資料字典通常儲存資料庫的元資料,是資料庫的「資料庫」。通常說的資料字典由4部分組成:內部rdbms(x$)表、資料字典表、動態效能檢視(v$)和(靜態)資料字典檢視。(兩表兩檢視)
1,內部rdbms(x$)表
x$表示oracle資料庫的核心部分,這些表用於跟蹤資料庫內部資訊,維持資料庫的正常執行。x$表是加密命名的,而且oracle不做文件說明。x$表是oracle資料庫的執行基礎,在資料庫啟動時由oracle應用程式動態建立。比如我們熟知的x$bh、x$ksmsp等。研究這些表的最好的辦法就是借用oracle的autotrace功能(set autotrace trace explain)。
2,資料字典表
資料字典表(data dictionary table)用以儲存表、索引、約束以及其它資料庫結構的資訊,這些物件通常以「$」結尾(例如:tab$、obj$、ts$等),在
建立資料庫的時候通過執行$oracle_home/rdbms/admin/sql.bsq指令碼來建立。sql.bsq是乙個非常重要的檔案,其中包含了資料字典表的定義及注釋說明,應仔細閱讀研究。
比如我們經常使用的v$dba_object檢視就是基於v$obj建立的;再比如,當使用者建立一張表的時候,oracle將會在後台執行一系列的內部操作,比如向objv$表中插入資料、向tab$表中記錄表資料等。oracle通過將ddl解析成dml操作,並且將這些操作記錄在資料字典表中,那麼我們當然可以通過反向解析得到原始的建立語句,從oracle 9i 開始,乙個新的工具包 dbms_metadata 就可以完成該功能:
3,靜態資料字典檢視
由於x$表和資料字典表通常不能直接被使用者訪問,oracle建立了靜態資料字典檢視來提供使用者對於資料字典資訊的訪問,由於這些資訊通常相對穩定,不能直接修改,所以又被稱為靜態資料字典檢視。靜態資料字典檢視在
建立資料庫時由$oracle_home/rdbms/admin/catagory.sql指令碼建立。
靜態資料字典檢視按照字首的不同通常分成三類:
● all_:用於有許可權訪問的所有物件的資訊;
通過三類檢視在本質上是為了實現許可權控制。在oracle資料庫中,
每個使用者與方案(schema)是對應的,schema是使用者所擁有的物件的集合。資料庫通過schema將不同使用者的物件隔離開來,使用者可以自由的訪問自己的物件,但是要訪問其他schema物件就需要相關的授權。
4,動態效能檢視
動態效能檢視記錄了資料庫執行時資訊和統計資料,大部分動態效能檢視被實時更新以及反映資料庫當前狀態。在資料庫啟動時,oracle動態建立x$表,在此基礎上,oracle建立了**$和v$檢視,**$即global v$,除了一些特例外,每個v$都對應乙個**$。**$產生是為了ops/rac環境的需要,每個v$都是基於**$的,只是**$多了inst_id列來顯示例項id。
(1)如何檢視乙個檢視的底層建立語句?
oracle提供了一些特殊的檢視用以記錄其他檢視的建立方式,v$fixed_view_definition就是其中之一。
(2)查詢v$檢視時,報的錯卻是v_$檢視不存在,v_$檢視不是基於v$檢視建立的嗎,怎麼反向報錯了?
為了防止普通使用者的誤操作,oracle對通過軟體機制對v$檢視的訪問做了限制,它不允許普通使用者直接訪問v$檢視,但我們平時不是經常訪問嗎?這其實是oracle引入了v_$檢視。在建立v$檢視後,oracle就建立了v_$檢視,隨後為v_$檢視建立了與v$檢視同名的共用同義詞。這些工作都是通過catalog.sql指令碼(該指令碼位於$oracle_home/rdbms/admin/目錄下)實現的。
如:
create or replace view v_$fixed_table as select * from v$fixed_table;
create or replace public synonym
v$fixed_table for v_$fixed_table; --同名同義詞
也就是說,大部分使用者訪問的v$物件,並不是檢視,而是執行v_$檢視的同義詞;而v_$檢視時基於真正v$檢視建立的。
Oracle 資料字典
資料字典包括以下內容 1.所有資料庫schema物件的定義 表,檢視,索引,聚簇,同義詞,序列,過程,函式,包,觸發器 2.資料庫的空間分配和使用情況 3.欄位的預設值 4.完整性約束資訊 5.oracle使用者名稱,角色,許可權等資訊 6.審計資訊 7.其他資料庫資訊 資料字典有4部分組成 內部r...
oracle 資料字典
oracle資料字典 select from user tab columns 檢視使用者列物件 select from user tab comments 檢視使用者表的備註 select from user tab statistics select from all users 所有使用者 s...
Oracle 資料字典
資料字典包括以下內容 1.所有資料庫schema物件的定義 表,檢視,索引,聚簇,同義詞,序列,過程,函式,包,觸發器 2.資料庫的空間分配和使用情況 3.欄位的預設值 4.完整性約束資訊 5.oracle使用者名稱,角色,許可權等資訊 6.審計資訊 7.其他資料庫資訊 資料字典有4部分組成 內部r...