본문 바로가기
IT정보

오라클 시스템 뷰 및 사용자 뷰

by 디노프랭키 2023. 5. 3.
728x90

지난 포스팅에 이어 시스템 뷰 종류에 대해 더 알아보도록 하겠습니다. 더불어 사용자 뷰에 대해서도 알아보도록 하겠습니다. 'DBA_'로 시작하는 뷰는 시스템 뷰이고 'USER_'로 시작하는 뷰는 사용자 뷰입니다.

오라클 시스템 뷰 및 사용자 뷰

DBA_CONSTRAINTS

DBA_CONSTRAINTS는 제약조건에 관한 모든 정보를 저장하는 시스템 뷰입니다. 기본키, 외래키, 제약조건, 고유키 등 키값에 대한 정보들을 확인할 때 이 뷰로 확인할 수 있습니다. 테이블 소유자, 제약유형(기본키, 외래키, 고유키 등), 테이블명, 제약 조건, 테이블 소유자, 제약조건의 상태, 제약조건의 이름, 행삭제 시 수행할 작업 등의 정보를 가지고 있습니다.

DBA_TRIGGERS

DBA_TRIGGERS는 트리거에 대한 모든 정보를 저장하는 시스템 뷰입니다. 트리거란 이벤트 발생(저장, 수정, 삭제 등) 시 자동으로 실행되는 작업을 정의한 것입니다. 예를 들면 로그인 정보가 저장이 될 때 트리거를 발생시켜 접속 이력 정보에 정보를 저장하게 할 수 있습니다. 또한, 메인테이블에서 행이 삭제될 때 서브 테이블들의 데이터를 삭제하도록 트리거를 발생시킬 수 있습니다. 트리거는 사용자가 직접 구현을 하지만 실행은 데이터베이스가 이벤트 발생 시 알아서 자동으로 실행해 줍니다. 트리거가 속한 스키마 이름, 트리거 이름, 트리거종류(BEFORE/AFTER INSERT/UPDATE/DELETE), 트리거이벤트(INSERT, UPDATE, DELETE), 테이블이름, 대상 객체 종류(TABLE/VIEW), 대상 칼럼명, 대상 테이블 명, 실행되는 조건, 트리거의 상태 등의 정보를 포함하고 있습니다.

DBA_TAB_PARTITIONS

DBA_TAB_PARTITIONS는 파티션을 사용한 테이블들의 파티션정보를 가지고 있는 시스템 뷰입니다. 파티션 테이블이란 일정한 기간, 월도나 대량의 데이터가 있는 경우, 데이터 접근 속도가 빠른 테이블이 필요한 경우 등 필요에 따라 파티션을 사용한 테이블을 만들 수 있는데 사용자의 특정 기준에 따라 데이터를 파티션 단위로 분할해 관리하기 때문에 한 테이블에 데이터가 몰려있는 것을 방지할 수 있습니다. 나눠진 파티션 일부에서 데이터를 조회해 올 때는 성능이 매우 좋으나 여러 범위에 걸쳐져 있는 데이터를 조회하거나 엄청 큰 기간 범위의 데이터를 조회한다면 여러 개의 파티션을 한꺼번에 참조해야 하기 때문에 하나의 테이블을 사용하는 것보다 오히려 성능이 나빠질 수 있습니다. 파티션 테이블의 스키마 이름, 파티션 테이블 이름, 파티션 이름, 범위 또는 목록값, 테이블스페이스 이름, 사용률, PCTFREE설정값, 초기 트렌젝션 수, 압축여부, 인덱스 프리픽스 길이, 수행가능한 최대 트렌젝션 수, 서브파티션 수 등의 정보를 포함하고 있습니다.

DBA_TAB_SUBPARTITIONS

DBA_TAB_SUBPARTITIONS는 파티션 테이블의 서브 파티션 정보를 가지고 있는 시스템 뷰입니다. 서브파티션은 논리적을 파티션을 더 작은 단위로 분할한 것을 말합니다. 서브파티션을 소유하고 있는 스키마 이름, 부모의 파티션이름, 테이블 이름, 범위를 지정하는 표현식, 서브 파티션 명, 빈 공간의 비율, 사용 중인 공간의 비율, 재사용 가능한 공간의 비율 등의 정보를 가지고 있습니다.

DBA_EXTENTS

DBA_EXTENTS는 객체(테이블, 인덱스 등)가 사용하고 있는 익스텐트의 정보를 담고 있는 시스템 뷰입니다. 익스텐트란 데이터베이스의 최소 저장 단위인 블록의 연속된 묶음을 얘기합니다. 스키마의 이름, 속한 객체이름, 파티션 이름, 객체의 타입(테이블, 인덱스 등), 데이터 파일의 ID, 인스턴트의 크기 등의 정보를 가지고 있습니다.

DBA_FREE_SPACE

DBA_FREE_SPACE 사용 가능한 여유 공간에 대한 정보를 제공하는 시스템 뷰입니다. 데이터 파일, 테이블스페이스 등의 사용공간 및 여유공간을 표시해 주며 물리적인 공간의 모니터링을 할 수 있습니다. 테이블스페이스 명, 파일아이디, 첫 번째 블록 아이디, 여유공간 크기의 정보를 가지고 있습니다.

USER_TABLES

USER_TABLES는 테이블의 데이터 정보를 가지고 있는 사용자 뷰 입니다. 시스템 뷰와는 다르게 사용자 뷰는 접속한 계정의 접근 권한이 있는 정보만 보이도록 되어 있습니다. 테이블 명, 테이블스페이스 명, 블록 수, 행의 수 등의 정보를 가지고 있습니다.

USER_TAB_COLUMNS

USER_TAB_COLUMNS는 사용자가 소유하고 있는 테이블의 모든 컬럼 정보를 가지고 있는 사용자 뷰입니다. 테이블 명, 칼럼 명, 칼럼 타입, 칼럼 길이, 소수점 이하 자릿수, DEFAULT 제약 조건 길이, NULL허용 여부 등의 값을 포함하고 있습니다.

USER_INDEXES

USER_INDEXES는 사용자가 소유한 모든 인덱스의 정보를 가지고 있는 사용자 뷰 입니다. 인덱스 타입, 인덱스 명, 인덱스 상태, 인덱스 위치, 테이블 이름 등의 정보를 가지고 있습니다.

USER_IND_COLUMNS

USER_IND_COLUMNS는 인덱스의 컬럼 정보를 가지고 있는 사용자 뷰입니다. 인덱스를 대량으로 생성한다거나 생성한 인덱스의 칼럼정보를 보고 싶을 때 이 뷰를 사용합니다. 인덱스 명, 칼럼위치, 칼럼 길이, 칼럼 명 등의 정보를 가지고 있습니다.

USER_CONSTRAINTS

USER_CONSTRAINTS는 사용자가 소유하고 있는 모든 제약조건의 정보를 가지고 있는 사용자 뷰 입니다. 제약 조건을 확인할때 이 뷰를 통해 확인 할 수 있습니다. 제약조건 명, 테이블명, 제약 조건 상태, 제약 조건 컬럼 명 등의 정보가 포함 되어 있습니다.

USER_SEQUENCES

USER_SEQUENCES는 사용자가 소유한 모든 시퀀스 정보를 가지고 있는 사용자 뷰 입니다. 시퀀스의 기본 정보들을 제공하고 있으며 시퀀스 이름, 최소값, 최대값, 증가값, 현재값 등의 정보를 가지고 있습니다.

728x90

'IT정보' 카테고리의 다른 글

오라클 UNION과 UNION ALL의 차이  (0) 2023.05.05
오라클 동적 관리 뷰  (6) 2023.05.04
시스템 뷰  (2) 2023.05.02
오라클 실행 계획  (0) 2023.05.01
오라클 아키텍처  (0) 2023.05.01

댓글