OracleDB/Concept

Data Dictionary/Dynamic Performance View란?

대끄블 2023. 1. 6. 14:12

Oracle을 사용하면서 Database에 대한 다양한 Metadata를 조회해야할 필요가 있습니다. 이때 누구는 Data Dictionary View를.. 누구는 Dynamic Performance View를 조회하는데, 각 View가 무엇인지 소개하겠습니다.​

 

​Data Dictionary

Oracle Database에 대한 Administrative Metadata를 제공하는 Read-only Table의 집합으로 다음과 같은 정보가 포함됩니다.

  • column의 default value 및 integrity constraint 정보를 포함하여 Database의 모든 schema object의 definition
  • schema object에 할당되어 현재 사용중인 space 양
  • Database User의 이름, privilege, role, user와 관련된 audit 정보

 

이러한 Data Dictionary는 Base Table과 View로 구성되어 있습니다.

Base Table

Oracle Database에서 제일 먼저 생성되는 Object입니다. Oracle만이 read/write하는 Table. 대부분의 Data가 암호 형식으로 저장되기 때문에 직접 액세스하는 경우는 거의 없습니다.

Views
액세스하는 User에 따라 적절한 View를 쿼리하여 관련된 정보에만 액세스할 수 있습니다.

  • DBA_*? Administrator 전용 view로 전체 Database의 모든 정보 표시
  • ALL_*?액세스하는 User에 대한 Object 외에도 권한이 있는 Object에 대한 정보도 표시
  • USER_*?일반 User가 액세스하는 View로 Schema Object에 대한 metadata등 user에 대한 다양한 정보 확인

DUAL Table

Data Dictionary에 존재하는 작은 Table로 모든 User가 액세스할 수 있으며, DUMMY라는 한개의 컬럼과 X값을 가지는 하나의 row가 있습니다. 다양하게 사용될 수 있으니 알아두면 좋을 것 같네요.

 

Data Dictionary Tables and Views는 SYSTEM Tablespace에 저장됩니다. (SYSTEM Tablespace는 DB가 Open일 때는 항상 online상태이므로 DB가 Open일 때 항상 Available합니다.) 이 모든 Object는 SYS User가 소유하고 있으므로, Data 정합성을 위해 일반 User는 SYS Schema에 포함된 Objects를 변경해서는 안됩니다.

 

그렇다면 이렇게 소중하게 여기는 Data Dictionary 정보는 어떻게 쓰일까요?

  • User, Schema Objects, Storage Structure에 대한 정보를 찾기 위해 사용(예. 적절한 액세스 권한이 있는 지등 확인)
  • DDL문이 실행될 때마다 Data Dictionary를 갱신

 

Dynamic Performance Views

Oracle Database 운영 전반에 걸쳐 현재 DB의 Activity를 기록하는 View를 유지관리하는데, 운영 중인 동안 지속적으로 업데이트되기때문에 Dynamic Performance View라고 합니다. Dynamic Performance View에는 다음과 같은 정보가 포함됩니다.

  • System/Session Parameters
  • Memory 사용량 및 할당
  • File 상태(RMAN BackupFiles도 포함)
  • Progress of jobs and tasks
  • SQL Execution
  • Statistics and metrics

Dynamic Performance Views는 DB Admin도 alter/remove등의 작업을 할 수 없습니다. SYS user가 소유하고 있는 Dynamic Performance Tables(V_$*)을 이용하여 Views가 생성된 다음 Public Synonyms(V$*)가 생성됩니다.

-> Oracle RAC의 경우, GV$*를 이용하여 모든 Instance의 V$* Views를 검색할 수 있습니다.

 

그렇다면 Dynamic Performance Views가 쓰이는 용도는?

  • Oracle EM(Enterprise Manager)가 Database에 대한 정보를 얻을 때 사용
  • Administrator는 성능 모니터링 및 디버깅을 위해 사용

DBCA를 이용하여 DB를 생성하는 경우, catalog.sql 스크립트가 수행되면서 Data Dictionary 관련 Tables과 Views를 모두 자동으로 생성합니다.

 

Oracle Database의 상태 정보를 저장해두기 위해 아주 많은 Views가 있습니다. 모두 소개하긴 어렵고, 아래 링크를 따라가면 자세한 설명을 확인할 수 있습니당 참고하세요~

https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/static-data-dictionary-view-descriptions.html#GUID-07AF2D31-B02D-488E-BB45-25CC44EFB6A0

 

Database Reference

The remainder of this chapter describes the static data dictionary views in alphabetical order.

docs.oracle.com

 

 

참조:

https://docs.oracle.com/en/database/oracle/oracle-database/19/cncpt/data-dictionary-and-dynamic-performance-views.html

 

Database Concepts

The central set of read-only reference tables and views of each Oracle database is known collectively as the data dictionary. The dynamic performance views are special views that are continuously updated while a database is open and in use.

docs.oracle.com

 

'OracleDB > Concept' 카테고리의 다른 글

Auditing이란?  (0) 2023.01.06
Oracle Undo란?  (0) 2023.01.06
Oracle Data Block 개념  (0) 2023.01.06
Segment Space and the HWM  (0) 2023.01.06
Partitioning Table/Index란?  (0) 2023.01.06