◆ 데이터 딕셔너리
  - 시스템 테이블스페이스에 저장되어 있다.
  - SYS계정이 소유하고 있다.
  - 오라클 서버(서버프로세스)에 의해 관리된다.
  - 사용자는 단지 select만 가능하다.
  - 안의 내용을 변경하고 싶다면 alter system set 명령어를 날려 서버프로세스에게 부탁해야 한다.
  - DDL 문장이 실행되면 오라클 서버가 변경한다.
  - 사용자와 DBA는 단지 읽기만 가능하다.
  - 딕셔너리를 조회하려면 무조건 DB는 오픈상태에 있어야 한다.
  - 딕셔너리 뷰는 정적이다.


데이터 딕셔너리는 두 부분으로 나뉘는데 원본 테이블과 데이터 딕셔너리 뷰이다. 원본 테이블은 너무 중요해서 우리가 볼 수 없으므로 딕셔너리 뷰를 통해 알 수 있다.
오라클 설치시 DBCA로 DB를 생성하면 딕셔너리 뷰도 같이 생성되는데, 수동으로 DB를 생성하면 기본적으로 딕셔너리 뷰를 안만든다. 그래서 마지막에 catalog.sql 스크립트를 실행시켜줘야 딕셔너리 뷰를 생성한다.

◆ 수동으로 DB 생성시 필수로 실행시켜줘야 하는 스크립트
  - catalog.sql
  - catproc.sql


◆ 데이터 딕셔너리에 있는 내용
딕셔너리에는 DB운영에 필요한 정보들이 들어있다.
  - 논리적, 물리적 데이터베이스 구조
  - 오브젝트들의 정의와 공간 할당
  - 무결성 제약조건
  - 사용자
  - 롤
  - 권한
  - 감사


◆ 데이터 딕셔너리 뷰의 세가지 범주
  - DBA_xxx : 데이터베이스의 모든 오브젝트들을 볼 수 있다.
  - ALL_xxx : 자기가 만든 것과 허용 가능한 것들을 볼 수 있다.
  - USER_xxx : 자기가 만든 것만 볼 수 있다.


◆ 자주 사용되는 데이터 딕셔너리

● DB 구조 관련
  - DBA_TABLESPACES
  - DBA_DATA_FILES

● 스키마 오브젝트 관련
  - DBA_TABLES
  - DBA_INDEXES
  - DBA_TAB_COLUMNS
  - DBA_CONSTRAINTS


◆ 데이터 딕셔너리는 정적?
딕셔너리의 정보는 정적이라서 바로바로 바뀌지 않는다. 그래서 수동으로 갱신을 해주어야 한다.

SQL> create table test (no number);

SQL> insert into test values (1);

SQL> commit;

test테이블에 내용이 있는 것을 확인.
SQL> select count(*) from test;

test테이블에 대한 로우 수, 블록 수, 빈 블록을 조회했는데 내용이 비었다.
SQL> select num_rows, blocks, empty_blocks
   from user_tables
   where table_name = 'TEST';

수동으로 정보를 갱신한다.
SQL> analyze table test compute statistics;

이제 정보가 나온다.
SQL> select num_rows, blocks, empty_blocks
   from user_tables
   where table_name = 'TEST';

SQL> delete from test;

SQL> commit;

테이블을 지웠는데도 관련 정보는 아직 남아있다.
SQL> select num_rows, blocks, empty_blocks
   from user_tables
   where table_name = 'TEST';

수동으로 정보를 갱신한다.
SQL> analyze table test compute statistics;

이제 정보가 나온다.
SQL> select num_rows, blocks, empty_blocks
   from user_tables
   where table_name = 'TEST';




◆ 동적 성능 뷰
  - 가상 테이블이다.
  - 딕셔너리 뷰와는 달리 메모리와 컨트롤파일에서 정보를 꺼내오기 때문에 노마운트나 마운트 상태에서도 조회가 가능함.
  - v$로 시작한다.


◆ 자주 사용되는 동적 성능 뷰
V$CONTROLFILE
V$DATABASE
V$DATAFILE
V$INSTANCE
V$PARAMETER
V$SESSION
V$SGA
V$SPPARAMETER
V$TABLESPACE
V$THREAD
V$VERSION

'오라클 > Admin' 카테고리의 다른 글

[Admin] Tablespace and Datafiles  (0) 2010.08.30
[Admin] Redo Log File  (0) 2010.08.28
[Admin] Control File  (0) 2010.08.26
[Admin] Startup과 Shutdown  (0) 2010.08.26
[Admin] Parameter File  (0) 2010.08.26
Posted by 겨울섬
,