Data Block 이란?
- Oracle DB에서 데이터 검색과 저장의 가장 기본 단위로서 (8K, 16K, 32K, 64K) 단 하나의 레코드를 읽더라도 최소 1 Block은 Access 해야된다.
Segment, Extent, Data Block
Segment, Extent, Data Block
Clustering Factor
Index key Column 을 기준으로 데이터들이 얼마나 잘 정렬 되어 있는지를 나타내는 수치
예) 메모리에 단 하나의 Bloc만들 담을 수 있고 이때 Index scan 시 테이블 블록의 access 횟수 아래 그림은 공부하고 있는 강의 자료에서 보여주는 그림이다
(Good / Bad Clustering Factor 비교)
Good / Bad Clustering Factor
즉 CF가 높을수록 db file sequential read 대기가 증가할 수 있는 가능성이 존재합니다. CF 값은 ANALYZE 명령문이나, DBMS_STATS 패키지를 이용해서 확인할 수 있습니다.인덱스에 대해 통계정보를 생성하면 DBA_INDEXES.CLUSTERING_FACTOR에 CF의 값이 입력됩니다. CF 수치는 테이블의 블록 수에 가까울 수록 좋고, 로우 수에 가까울수록 좋지 않습니다. 성능 문제의 원인이 CF인 경우, 테이블을 인덱스의 정렬순서와 동일한 순서로 재생성함으로써 해결할 수 있습니다. 하지만 테이블 재생성은 해당 테이블을 참조하는 다른 인덱스 성능에 영향을 미치므로 신중하게 고려해야 합니다.
High Water Mark
- 대량의 자료를 입력 할 경우 입력을 위한 공간을 먼저 확보한 뒤 입력을 수행하는데 이때
확보된 공간의 끝을 표시해 주는 것을 하이워터마크 라고 한다.
또한 이후 데이터를 삭제 하더라도 확보된 공간은 반환되지 않기 때문에 테이블을 스캔시
빈 공간을 모두 읽게되고 당연히 성능은 떨어지게 된다.
TRUNCATE를 하게되면 테이블 데이터를 초기화 하고 공간을 반환한다.
'Oracle > 성능 분석과 인스턴스 튜닝 정리' 카테고리의 다른 글
Buffer Cache 와 Access 메커니즘 (0) | 2021.06.10 |
---|---|
Oracle SGA 와 PGA 개요 (0) | 2021.06.07 |
오라클 데이터베이스 아키텍처 (0) | 2021.06.06 |
Oracle Data Dictionary 란?? (0) | 2021.05.01 |
Sequential Access & Random Access 비교 (2) | 2021.05.01 |