기술 정보
home
채널 소개
home

Tibero의 Consistent 모드 읽기와 예제

문서 유형
기술 정보
분야
관리/환경설정
키워드
consistent
Autotrace
1 more property

개요

Tibero에서 Consistent 모드는 TSN (Tibero System Number) 확인 과정을 거치며 읽기 일관성이 보장된 상태에서 데이터 블록을 읽는 방식입니다. 주로 SELECT 쿼리에 해당되며, 쿼리 수행 중 데이터가 변경되더라도 쿼리 시작 시점의 데이터 상태를 기준으로 읽기 작업이 수행됩니다.
참고
SQL trace 에서의 명칭: query
tbSQL 의 autotrace 에서의 명칭 : consistent gets
이때 TSN(Tibero System Number) 확인 과정을 거쳐 블록을 읽으며, 만약 블록에 변경 이력이 있다면 UNDO Segment를 참조하여 과거 시점의 블록을 복원해 읽는 CR(Consistent Read) 블록 작업이 발생하게 됩니다.
따라서, 실질적으로는 Current 블록을 읽더라도 consistent 모드로 읽을 경우는 SQL Autotrace 에서 Consistent gets 로 표시됩니다.

방법

테이블 및 데이터 생성
SQL> DROP TABLE EMP1; SQL> CREATE TABLE EMP1(EMPNO NUMBER, ENAME VARCHAR(20), DEPTNO NUMBER, SAL NUMBER); SQL> INSERT INTO EMP1 SELECT LEVEL, 'TIBERO'||LEVEL, MOD(LEVEL,20), trunc(DBMS_RANDOM.value(2000000,20000000)) FROM DUAL CONNECT BY LEVEL <= 1000000; SQL> ALTER TABLE EMP1 ADD CONSTRAINT PK_EMP1_EMPNO PRIMARY KEY(EMPNO); SQL> CREATE INDEX IDX_EMP1_DEPTNO ON EMP1(DEPTNO); SQL> CREATE INDEX IDX_EMP1_SAL ON EMP1(SAL); SQL> exec dbms_stats.gather_table_stats('TIBERO','EMP1',estimate_percent=>100 , method_opt=>'FOR ALL COLUMNS SIZE 254');
SQL
복사
Consistent 모드 읽기 예제
autotrace 기능을 활용해 emp1 테이블에서 특정 사원을 조회한 후, 관련 블록 접근 통계와 실행계획을 확인합니다.
set autot on select * from emp1 where empno=7788;
SQL
복사
Autotrace를 통해 실행계획과 리소스 사용 정보를 함께 확인합니다.
EMPNO ENAME DEPTNO SAL ------ ------------------ ------- ---------- 7788 TIBERO7788 8 7546894 1 row selected. SQL ID: 498189sf7nc2k Child number: 152 Plan hash value: 358002526 Execution Plan -------------------------------------------------------------------------------- 1 TABLE ACCESS (ROWID): EMP1 (Cost:4, %%CPU:0, Rows:1) 2 INDEX (UNIQUE SCAN): PK_EMP1_EMPNO (Cost:3, %%CPU:0, Rows:1) Predicate Information -------------------------------------------------------------------------------- 2 - access: ("EMP1"."EMPNO" = 7788) (0.000) NAME VALUE -------------------- ---------- db block gets 0 consistent gets 16 physical reads 0 redo size 0 sorts (disk) 0 sorts (memory) 3 rows processed 1
SQL
복사