데이터 사전 탐색, 자체 학습 Oracle 능력 향상

우 리 는 Oracle 이 데이터 사전 을 통 해 데이터베이스 정 보 를 관리 하고 보 여 주 는 것 이 중요 하 다 는 것 을 안다.이 부분 을 정확하게 이해 하 는 것 은 우리 의 Oacle 학습 능력 을 강화 하 는 데 도움 이 된다.
다음은 데이터베이스 자 체 를 통 해 데이터 베 이 스 를 연구 하 는 방법 을 소개 한다.
우선, Oracle 의 사전 표 와 보 기 는 기본적으로 세 가지 차원 으로 나 눌 수 있다.
1. X $표 이 부분 표 는 Oracle 데이터베이스 의 운영 기반 으로 데이터베이스 가 시 작 될 때 Oracle 응용 프로그램 이 동적 으로 만 듭 니 다.
2. GV $와 V $보 기 는 Oracle 8 에서 시작 하여 GV $보 기 를 도입 합 니 다. 그 의 미 는 Global V $입 니 다. 일부 특례 를 제외 하고 모든 V $보 기 는 대응 하 는 GV $보기 가 존재 합 니 다.
GV $보기 의 생 성 은 OPS 환경의 수 요 를 만족 시 키 기 위해 서 입 니 다. OPS 환경 에서 GV $보 기 를 조회 하면 모든 인 스 턴 스 정 보 를 되 돌려 줍 니 다. 각 V $보 기 는 GV $보 기 를 기반 으로 INST 를 추 가 했 습 니 다.ID 열 생 성, 현재 연결 인 스 턴 스 정보 만 포함.
모든 V $보기 에는 유사 한 문구 가 포함 되 어 있 습 니 다: where intid = USERENV ('Instance') 는 현재 인 스 턴 스 정 보 를 되 돌려 주 는 것 을 제한 합 니 다.
우 리 는 GV $FIXED 에서TABLE 과 V $FIXEDTABLE 시작!
SQL> select view_definition from v_$fixed_view_definition where view_name='V$FIXED_TABLE';
VIEW_DEFINITION ------------------------------------------------------------------------------------------------------ select NAME , OBJECT_ID , TYPE , TABLE_NUM from GV$FIXED_TABLE where inst_id = USERENV('Instance')
여기 V $FIXEDTABLE GV $FIXED 기반TABLE 생 성.
SQL> select view_definition from v_$fixed_view_definition where view_name='GV$FIXED_TABLE';
VIEW_DEFINITION -------------------------------------------------------------------------------------------------------- select inst_id,kqftanam, kqftaobj, 'TABLE', indx from x$kqfta  union all  select inst_id,kqfvinam, kqfviobj, 'VIEW', 65537 from x$kqfvi  union all  select inst_id,kqfdtnam, kqfdtobj, 'TABLE', 65537 from x$kqfdt
이렇게 해서 GV $FIXED 를 찾 았 습 니 다.TABLE 보기 의 생 성 문 구 는 X $표를 기반 으로 만 듭 니 다.
3.GV_$,V_$보기 와 V $, GV $동의어 이 보기 들 은 catalog. ql 을 통 해 만 듭 니 다.
catalog. sql 이 실 행 될 때: view v $를 생 성하 거나 대체 합 니 다.fixed_table as select * from v$fixed_table; create or replace public synonym v$fixed_table for v_$fixed_table;
create or replace view gv_$fixed_table as select * from gv$fixed_table; create or replace public synonym gv$fixed_table for gv_$fixed_table;
첫 번 째 보기 V $GV $먼저 생 성 됨, v $gv $두 개의 보기.그리고 V $기반보기 의 동의어 가 생 성 되 었 습 니 다.
그래서 실제로 우리 가 방문 하 는 V $보 기 는 V $를 가리 키 는 것 입 니 다.보기 의 동의어.그리고 V $보 기 는 진정한 V $보 기 를 기반 으로 합 니 다. (이 보 기 는 X $표를 기반 으로 합 니 다.)
그리고 v $fixedview_definition 보 기 는 우리 가 Oracle 대상 관 계 를 연구 하 는 입구 로 Oracle 의 데이터 사전 체 제 를 자세히 이해 하면 Oracle 데이터 베 이 스 를 깊이 이해 하고 학습 하 는 데 도움 이 된다.
더 1. X $표
X $표 에 대해 서 는 생 성 정 보 를 데이터 사전 에서 엿 볼 수 있 습 니 다.우선 boottstrap $표를 살 펴 보 겠 습 니 다. 이 표 에는 데이터 베 이 스 를 시작 하 는 기본 및 구동 정 보 를 기록 하고 있 습 니 다.
SQL> select * from bootstrap$;
     LINE#       OBJ# SQL_TEXT
---------- ---------- --------------------------------------------------------------------------------
        -1         -1 8.0.0.0.0
         0          0 CREATE ROLLBACK SEGMENT SYSTEM STORAGE (  INITIAL 112K NEXT 1024K MINEXTENTS 1 M
         8          8 CREATE CLUSTER C_FILE#_BLOCK#("TS#" NUMBER,"SEGFILE#" NUMBER,"SEGBLOCK#" NUMBER)
         9          9 CREATE INDEX I_FILE#_BLOCK# ON CLUSTER C_FILE#_BLOCK# PCTFREE 10 INITRANS 2 MAXT
        14         14 CREATE TABLE SEG$("FILE#" NUMBER NOT NULL,"BLOCK#" NUMBER NOT NULL,"TYPE#" NUMBE
         5          5 CREATE TABLE CLU$("OBJ#" NUMBER NOT NULL,"DATAOBJ#" NUMBER,"TS#" NUMBER NOT NULL
         6          6 CREATE CLUSTER C_TS#("TS#" NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 2 MAXTRANS 255
         7          7 CREATE INDEX I_TS# ON CLUSTER C_TS# PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE (
....

이 부분 정 보 는 데이터 베 이 스 를 시작 할 때 가장 먼저 불 러 옵 니 다. 데이터 베 이 스 를 시작 하 는 과정 을 추적 한 결과 데이터 베 이 스 를 시작 하 는 첫 번 째 동작 은 다음 과 같 습 니 다.
create table bootstrap$ ( line#         number not null,   obj#

  number not null,   sql_text   varchar2(4000) not null)   storage (initial

  50K objno 56 extents (file 1 block 377))

이 부분 코드 는 Oracle 응용 프로그램 에 쓰 여 있 습 니 다. 메모리 에 bootstrap $를 만 든 후에 Oracle 은 file 1, block 377 에서 다른 정 보 를 읽 고 중요 한 데이터 베 이 스 를 만 들 수 있 습 니 다.이 부분 은 biti 를 참고 하 세 요.rainy 의 글.
X $표 는 여기 서 만 듭 니 다.이 부분 표 는 v $fixedtable 에서 찾기:
SQL> select count(*) from v$fixed_table where name like 'X$%';

  COUNT(*)

----------

       394

모두 394 개의 X $대상 이 기록 되 었 다.
2. GV $와 V $보기 X $표 가 만들어 진 후 X $표 의 GV $와 V $보 기 를 기반 으로 만 들 수 있 습 니 다.
이 부분 보 기 는 저희 도 V $FIXED 를 조회 할 수 있 습 니 다.TABLE 받 아.
SQL> select count(*) from v$fixed_table where name like 'GV$%';
  COUNT(*)
----------
       259

이 부분 은 총 259 개 대상 이다. 
SQL> select count(*) from v$fixed_table where name like 'V$%';

  COUNT(*)

----------

       259

역시 259 개 대상 이다.
v$fixed_table 은 모두 394 + 259 + 259 총 912 개 대상 을 기록 했다.
우 리 는 V $PARAMETER 보 기 를 통 해 데이터베이스 의 구 조 를 추적 합 니 다.
SQL> select view_definition from v$fixed_view_definition a where a.VIEW_NAME='V$PARAMETER';

VIEW_DEFINITION

--------------------------------------------------------------------------------

select  NUM , NAME , TYPE , VALUE , ISDEFAULT , ISSES_MODIFIABLE , ISSYS_MODIFIA

BLE , ISMODIFIED , ISADJUSTED , DESCRIPTION, UPDATE_COMMENT from GV$PARAMETER wh

ere inst_id = USERENV('Instance')

우 리 는 V $PARAMETER 가 GV $PARAMETER 에서 만 든 것 을 보 았 다.
SQL> 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,ksppstdf,  decode(bitand(kspp
iflg/256,1),1,'TRUE','FALSE'),  decode(bitand(ksppiflg/65536,3),1,'IMMEDIATE',2,
'DEFERRED',                                  3,'IMMEDIATE','FALSE'),  decode(bit
and(ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE'),  decode(bitand(ksppstvf,2)
,2,'TRUE','FALSE'),  ksppdesc, ksppstcmnt  from x$ksppi x, x$ksppcv y where (x.i
ndx = y.indx) and  ((translate(ksppinm,'_','#') not like '#%') or (ksppstdf = 'F
ALSE'))

여기 서 우 리 는 GV $PARAMETER 가 x $ksppi, x $ksppcv 두 개의 X $표 에서 유래 한 것 을 보 았 다.x $ksppi, x $ksppcv 는 기본적으로 모든 데이터 베 이 스 를 조정 할 수 있 는 파 라 메 터 를 포함 하고 있 으 며, v $parameter 는 '' 로 시작 하 는 파 라 메 터 를 포함 하지 않 습 니 다.'' 로 시작 하 는 매개 변 수 를 우 리 는 보통 함 축 된 매개 변수 라 고 부 릅 니 다. 일반적으로 수정 을 권장 하지 않 지만 기능 이 강해 서 자주 사용 하 는 것 으로 널리 알려 져 있 습 니 다.

좋은 웹페이지 즐겨찾기