LOB 의 성능 향상 방법을 알아보자
LOB는 성능적인 관점에서 사용을 최소화 해야 한다. 하지만 불가피 하게 사용 해야 할 경우 성능 향상 방법을 살펴보자
LOB in row
• 오라클 권고 사항
• DATA가 가 4K 이하일 때는 row 에 저장되고, 이상이 되면 LOB
세그먼트에 저장
• 장점 : LOB 관련 작업 속도가 빠름
• 단점
– Row chaining 등이 많아 져서, 일반 OLPT 성능은 저하
– 전체 테이블 처리 및 범위 처리 비용 증가
LOB in out of row
• DATA가 가 4K 이상일 때 사용
• 장점 : 일반 OLTP 작업에 미치는 영향이 없음
• 단점 : 저장 공간 낭비 발생
STORE AS ( chunk bytes )
테이블 생성 시에만 지정 가능함
LOB 을 위한 기본적인 데이터 변경 단위
DB_BLOCK_SIZE 의 배수로 자동 설정
• Byte 단위로 설정
• 2K DB Block size, 3000의 의 chunk 설정 시
– Chuck 사이즈는 4096 으로(rounded) 설정됨
LOB 세그먼트에 대한 UNDO 적용 불가
LOB Page 단위의 versioning 이 사용됨
Page Versioning 과정
• 모든 변경은 LOB page 단위로 발생
• 하나의 LOB page 변경으로 new page 가 생성
• 동시에 old page 를 지우지 않고 유지함
• 이전 버전의 page 를 통해 Consistent Read
– 별도의 space 가 많이 소요되지만, consistent read를 위한 성능을 제공하는 이점이 있음
STORE AS ( pctversion n )
• ALTER TABLE tblname MODIFY LOB (lobname) (PCTVERSION n);
Consistent Read 를 위해서 항상 유지해야 하는Version Page 용
공간 비율 용
공간 비율(%)
• 실제 LOB 데이터 크기에 대한 비율
• 기본 값 : 10(%)
전 값이 너무 작아서 이전 version이 이 overwritten 되는 경우, “snap
shot two old” 오류 발생
PCTVERSION 값의 고려 사항
• How often LOBs are updated?
• How often the updated LOBs are read?
예제
• 읽기 요청이 많으면서 동시에 LOB 변경(20% 이상)
• 읽기 요청이 대부분이며 변경이 거의 없음(5% 이하)
• 자주 access되는 경우라면, cache를 선택하여 사용한다. default는 nocache이다.
• in-line lob은 영향을 받지 않는다. 즉, in-line lob은 다른 데이타와 마찬가지로 buffer cache에서 바로 읽혀지기 때문이다.
• CACHE_SIZE_THRESHOLD limit이 적용되지 않기 때문에 cache할 때는 주의해야 한다.
• cache/nocache 변경
SQL> ALTER TABLE demolob MODIFY LOB (b) ( CACHE/NOCACHE );
• redo 정보를 생성 여부 결정
• cache option을 사용하는 경우는 무조건 logging
• logging, nologging에 상관 없이 undo 정보는 lob index에 대해서만 생성되고, lob
데이타에 대해서는 생성하지 않는다.
• logging인 경우는 redo 정보를 생성하고, bulk load나 대량의 insert를 하는 경우
nologging을 설정하여 redo 정보를 생성하지 않도록 할 수 있다.
• logging/no logging 변경
SQL> ALTER TABLE demolob MODIFY LOB(b) (NOCACHE NOLOGGING);
'DB - ORACLE > Oracle DB Admin ' 카테고리의 다른 글
Oracle ASM 프로세스 설명 (0) | 2017.04.12 |
---|---|
오라클 파티션 테이블 리오그 방법 (0) | 2017.04.11 |
LOB SEGMENT 생성 GUIDE (0) | 2017.03.08 |
Oracle Partion Table 기준 (0) | 2017.03.06 |
ORACLE MRI CYCLE CHECK 소개 ( 테크데이타 상세 정기 점검 ) (0) | 2016.10.17 |