본문 바로가기

아키텍쳐34

CH01. 인덱스 원리와 활용 - 09. 비트맵 인덱스 인덱스는 키 값에 해당하는 테이블 레코드를 찾아갈 수 있도록 주소 정보를 제공합니다. 일반적으로 사용되는 B*Tree 인덱스는 테이블 레코드를 가리키는 rowid 목록을 키 값과 함께 저장하는 구조입니다. 테이블에 100개 레코드가 있으면 인덱스에도 100개 rowid를 키 값과 함께 저장합니다. rowid에는 중복 값이 없지만 키에는 중복 값이 있을 수 있습니다. 개념적으로 비트맵 인덱스는 키 값에 중복이 없고, 키 값 별로 하나의 비트맵 레코드를 갖습니다. 그리고 비트맵 상의 각 비트가 하나의 테이블 레코드와 매핑됩니다. 비트가 1로 설정돼 있으면 상응하는 테이블 레코드가 해당 키 값을 포함하고 있음을 의미합니다. (1)기본구조 그림의 아래쪽이 색상 컬럼이 생성한 비트맵 인덱스를 표현한 것인데, 키 .. 2020. 3. 26.
오라클 19c 아키텍쳐 소개 https://www.oracle.com/webfolder/technetwork/tutorials/architecture-diagrams/19/database-technical-architecture.html Oracle Database Technical Architecture This interactive diagram shows the Oracle Database 19c technical architecture. Show PDF | Show Instructions To step through the slide show, click the Previous and Next buttons. To return to the first slide, click the First button. The breadcr.. 2020. 3. 5.
06.I/O 효율화 원리 - 01. 블록 단위 I/O I/O효율화를 달성하기 위해서는 쉽지 않은데다 장기간의 훈련이 필요합니다. I/O효율화 튜닝을 잘하려면 인덱스 원리, 조인 원리, 옵티마이저 원리에 대한 이해가 필수적입니다. 오라클을 포함한 모든 DBMS에서 I/O는 블록(block)단위로 이루어집니다. 블록 단위로 I/O한다는 것은, 하나의 레코드에서 하나의 컬럼만을 읽으려 할 때도, 레코드가 속한 블록 전체를 읽게 됨을 뜻합니다. 이는 데이터베이스 I/O성능과 튜닝원리를 이해하는데 매우 중요합니다. 하나의 블록을 액세스해 그 안에 저장돼 있는 모든 레코드를 순차적으로 읽는다면 설명 무거운 디스크 I/O를 수반하더라도 비효율은 없을 것입니다.(Sequential 액세스) 하지만 레코드 하나를 읽으려고 블록을 통째로 액세스한다면 그것은 메모리 버퍼에서 .. 2020. 2. 9.
04.라이브러리 캐시 최적화 원리 - 01.SQL과 옵티마이저, 02.SQL처리과정 01.SQL과 옵티마이저 옵티마지어가 내장된 DBMS를 사용한다면 개발자가 프로시저를 직접 코딩할 필요없이 옵티마이저가 대신해서 프로그래밍해주고 프로시저를 생성해 줍니다. 예를들어, 아래와 같은 쿼리를 작성해서 결과값을 리턴받았다고 가정할때 예전에는 두 개 테이블을 조인해 사용자가 원하는 결과집합을 얻으려면, 기준 테이블을 select하고 한 건씩 fetch하면서 반대편 테이블로부터 조인 레코드를 seek하는 과정을 루핑을 통해 반복 수행하는 프로시저를 직접 개발했었어야 했습니다. 하지만 옵티마이저가 우리를 대신해 프로그래밍 해주게되고 프로시저가 자동으로 생성되는 것입니다. select e.ename,e.job,d.dname from emp e, dept d where d.deptno=e.deptno a.. 2020. 1. 9.