MVCC란? 데이터를 변경할 때마다 그 변경사항을 undo 영역에 저장하며, 이후 데이터를 읽다가 쿼리 시작 시점 이후에 변경된 값 발견 시 undo 영역에 저장하였던 정보를 이용하여 쿼리 시작 시점의 일관성 있는 버전(CR Copy)를 생성하고 읽는다. MVCC는 문장수준과 트랜잭션 수준의 읽기 일관성이 존재한다. 문장수준 읽기 일관성 문장수준 읽기 일관성은, 다른 트랜잭션에 의해 데이터의 추가, 변경, 삭제가 발생하더라도 단일 SQL문 내에서 일관성 있게 값을 읽는 것을 이야기함. 일관성의 기준은 쿼리를 시작하였을 때 값을 이야기함. 트랜잭션 수준 읽기 일관성 트랜잭션 수준 읽기 일관성은, 다른 트랜잭션에 의해 데이터의 추가, 변경, 삭제가 발생하더라도 트랜잭션 내에서 일관성 있게 값을 읽는 것이다...
IOT 테이블 전체가 인덱스 구조로 이루어진 테이블을 IOT(Index-Organized Table)이라고 부르며 테이블을 찾아가기 위한 rowid를 갖는 일반 인덱스와는 달리 모든 데이터를 리프 블록에 저장하고 있다. (인덱스 리프 블록 == 데이터 블록) IOT 구조로 테이블을 구성하기 위해선 테이블 시작 시 설정하여야하는데, 그 방법은 아래와 같다. create table index_org t (a number primary key, b varchar(10)) organization index; //IOT 생성 특징 같은 값을 가진 레코드들이 100% 정렬된 상태로 모여있기 때문에 Rnadom 액세스가 아닌, Sequential 방식으로 데이터를 액세스할 수 있다. → 넓은 범위를 액세스할 때 유리..
실행 계획을 확인할 수 있는 방법은 여러 가지가 있는데, 오라클이 기본으로 제공하는 쿼리 툴 SQL*Plus에서 아래 명령을 수행하면 실행계획이 PLAN_TABLE에 저장된다. explain plan for select * from emp where ename = :enmae ad deptno = :deptno; PLAN_TABLE에 저장된 정보를 읽어 분석하기 쉬운 형태로 포메팅하는 방법에 여러 가지가 있지만, 가장 쉬운 방법은 아래와 같이 dbms_xplan.display 함수를 사용하는 것이다. select * from table( dbms_xplan.display(null, null, 'typical') ); SQL Server에서 예상 실행계획을 출력하는 방법 set showpla..
오라클 아키텍처에서 데이터베이스의 정의 오라클에서는 디스크에 저장된 데이터 집합(Datafile, Redo Log File, Control File 등)을 데이터베이스 라고 부른다. 그리고 SGA (Server Global Area) 공유 메모리 영역과 이를 액세스하는 프로세스 집합을 합쳐서 인스턴스라고 부른다. 오라클 백그라운드 프로세스 종류 SMON(System Monitor) 오라클 인스턴스를 관리하는 프로세스, 오라클 인스턴스에 장애 발생 후 재가동 시 복구를 수행하고,임시 세그먼트와 익스텐트를 모니터링하여 데이터파일의 빈 공간 연결 → 하나의 큰 빈 공간으로 만듦. 더 이상 사용하지 않는 임시 블록 세그먼트를 재사용할 수 있도록 함. PMON(Process Monitor) 오라클 서버에서 사용되..