oracle資料字典簡介
Oracle的字典表和檢視基本上可以分為三個層次:
1.X$表
X$資料結構是Oracle資料庫管理系統(DBMS)的核心。在資料庫管理系統的核心中,他們是處於不斷變化中的記憶體結構,儲存著例項(Instance)執行期間的各種統計資訊。
2.GV$和V$檢視
從Oracle8開始,GV$檢視開始被引入,其含義為Global V$。除了一些特例以外,每個V$檢視都有一個對應的GV$檢視存在,如:v$session和gv$session。GV$檢視的產生是為了滿足RAC(舊稱OPS)環境的需要,在RAC環境中,查詢GV$檢視將返回所有例項資訊。
而對應的V$檢視基於GV$檢視,增加了INST_ID列建立,只包含當前連線例項資訊。包含類似限制語句:where inst_id = USERENV('Instance'), 來達到返回當前例項資訊的目的。
> select view_definition from v$fixed_view_definition a where a.VIEW_NAME='V$PARAMETER';VIEW_DEFINITION
------------------------------------------------------------------------------------------------------------------------select NUM , NAME , TYPE , VALUE , DISPLAY_VALUE, ISDEFAULT , ISSES_MODIFIABLE , ISSYS_MODIFIABLE , ISINSTANCE_MODIFIABLE, ISMODIFIED , ISADJUSTED , ISDEPRECATED, ISBASIC, DESCRIPTION, UPDATE_COMMENT, HASH from GV$PARAMETER where inst_id = USERENV('Instance')
3.GV_$,V_$檢視和V$,GV$同義詞
透過catalog.sql建立(位於$ORACLE_HOME/RDBMS/ADMIN目錄下)。
這裡擷取了11gr2的catalog.sql,以session檢視為例。
create or replace view v_$session as select * from v$session;
create or replace public synonym v$session for v_$session;
grant select on v_$session to select_catalog_role;
create or replace view gv_$session as select * from gv$session;
create or replace public synonym gv$session for gv_$session;
grant select on gv_$session to select_catalog_role;首先是檢視V_$和GV_$被建立(每一部分第一句)。然後基於V_$檢視的同義詞被建立(每一部分第二句)。
所以,實際上通常我們訪問的V$檢視,其實是指向V_$檢視的同義詞。而V_$檢視是基於真正的V$檢視(這個檢視是基於X$表建立的,如下)。
> select view_definition from v$fixed_view_definition a where a.VIEW_NAME='GV$PARAMETER';
VIEW_DEFINITION
------------------------------------------------------------------------------------------------------------------------select x.inst_id,x.indx+1,ksppinm,ksppity,ksppstvl, ksppstdvl, ksppstdf, decode(bitand(ksppiflg/256,1),1,'TRUE','FALSE'), decode(bitand(ksppiflg/65536,3),1,'IMMEDIATE',2,'DEFERRED', 3,'IMMEDIATE','FALSE'), decode(bitand(ksppiflg,4),4,'FALSE', decode(bitand(ksppiflg/65536,3), 0, 'FALSE','TRUE')), decode(bitand(ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE'), decode(bitand(ksppstvf,2),2,'TRUE','FALSE'), decode(bitand(ksppilrmflg/64, 1), 1, 'TRUE', 'FALSE'), decode(bitand(ksppilrmflg/268435456, 1), 1, 'TRUE', 'FALSE'), ksppdesc, ksppstcmnt, ksppihash from x$ksppi x, x$ksppcv y where (x.indx = y.indx) and bitand(ksppiflg,268435456)= 0 and ((translate(ksppinm,'_','#') not like '##%') and ((translate(ksppinm,'_','#') not like '#%') or (ksppstdf = 'FALSE') or (bitand(ksppstvf,5) > 0)))
此外,從上面的定義還可以看到 v$parameter展現的是不包含"_"開頭的引數(通常稱為隱含引數)。
參考
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23650854/viewspace-688294/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料字典簡介
- 資料字典簡介和資料字典命中率
- ORACLE常用資料字典介紹Oracle
- Oracle資料字典的用途介紹Oracle
- oracle 資料字典Oracle
- Oracle 資料字典和資料字典檢視Oracle
- Oracle常用資料字典Oracle
- oracle 資料字典(轉)Oracle
- Oracle資料字典 (轉)Oracle
- 生成oracle資料字典Oracle
- Oracle 資料字典 (轉)Oracle
- Oracle的資料字典Oracle
- Oracle:容器資料庫簡介Oracle資料庫
- ORACLE資料庫簡介(轉)Oracle資料庫
- Oracle資料型別簡介Oracle資料型別
- oracle常用的資料字典Oracle
- Oracle 資料字典學習Oracle
- Oracle 資料字典大全 ZTOracle
- Oracle常用資料字典表Oracle
- 瞭解Oracle資料字典Oracle
- oracle資料庫資料字典應用Oracle資料庫
- Oracle - 資料庫的組成簡介Oracle資料庫
- Oracle大物件資料儲存簡介Oracle物件
- Oracle中的資料字典技術及常用資料字典總結Oracle
- oracle常用資料字典.檢視Oracle
- oracle結構梳理---資料字典Oracle
- oracle 資料字典關係圖Oracle
- Oracle的4類資料字典Oracle
- 深入瞭解Oracle資料字典Oracle
- oracle實驗記錄 (oracle 資料字典)Oracle
- 第1章 Oracle資料庫簡介-DBMSOracle資料庫
- 第1章 Oracle資料庫簡介-RMOracle資料庫
- Oracle實時資料整合工具簡介SBOracle
- 什麼是Oracle的資料字典?Oracle
- Oracle相關資料字典檢視Oracle
- 【轉載】Oracle資料字典檢視Oracle
- 深入瞭解Oracle資料字典(zt)Oracle
- oracle資料字典表與檢視Oracle