Refigo Blog

<오라클 성능 고도화 원리와 해법2> Ch02-06 스칼라 서브쿼리를 이용한 조인

오라클 성능 고도화 원리와 해법2 - Ch02-06 스칼라 서브쿼리를 이용한 조인 (1) 스칼라 서브쿼리 쿼리에 내장된 또 다른 쿼리 블록을 서브쿼리라고 하는데, 그 중에서 함수처럼 한 레코드당 정확히 하나의 값을 리턴하는 서브쿼리를 ‘스칼라 서브쿼리’라고 한다. 스칼라 서브쿼리는 주로 select-list에서 사용되지만 몇 가지 예외사항을 뺀다면...

<오라클 성능 고도화 원리와 해법2> Ch02-04 조인 순서의 중요성

오라클 성능 고도화 원리와 해법2 - Ch02-04 조인 순서의 중요성 조인 순서에 따라 쿼리 수행 성능이 달라질 수 있는데, 먼저 NIL 조인부터 살펴보자. 10만 고객을 관리하는 ‘고객’ 테이블과 세 종류(신용카드, 자동이체, 지로)의 납입 방법을 관리하는 ‘납입방법’ 테이블이 있다. 이 두 테이블을 조인하는 아래 SQL을 NIL 방식으로 조인할...

<오라클 성능 고도화 원리와 해법2> Ch02-03 해시 조인

오라클 성능 고도화 원리와 해법2 - Ch02-03 해시 조인 (1) 기본 메커니즘 7.3 버전에서 처음 소개된 해시 조인은, 소트 머지 조인과 NIL 조인이 효과적이지 못한 상황에 대한 대안으로 개발되었다. 해시 조인은 둘 중 작은 집합(Build Input)을 읽어 Hash Area에 해시 테이블을 생성하고, 반대쪽 큰 집합(Probe Inpu...

<오라클 성능 고도화 원리와 해법2> Ch02-02 소트 머지 조인

오라클 성능 고도화 원리와 해법2 - Ch02-02 소트 머지 조인 (1) 기본 메커니즘 NL 조인을 효과적으로 수행하려면 조인 컬럼에 인덱스가 필요하다. 만약 적절한 인덱스가 없다면 Inner 테이블을 탐색할 때마다 반복적으로 Full Scan을 수행하므로 매우 비효율적이다. 그럴 때 옵티마이저는 소트머지조인이나 다음 절에서 설명할 해시조인을 고...

<오라클 성능 고도화 원리와 해법2> Ch02-01 Nested Loops 조인

본서는 SQL 기초를 다루는 책이 아니므로 조인의 기본 개념은 설명하지 않는다. 오라클이 내부적으로 어떻게 조인을 수행하는지 원리를 설명하고, 그런 원리를 바탕으로 어떻게 쿼리 수행 성능을 향상시킬지 활용점을 밝히는 데 집중할 것이다. 오라클 성능 고도화 원리와 해법2 - Ch02-01 Nested Loops 조인 (1) 기본 메커니즘 프로그래밍...

<오라클 성능 고도화 원리와 해법2> Ch01-09 비트맵 인덱스

오라클 성능 고도화 원리와 해법2 - Ch01-09 비트맵 인덱스 인덱스는 키값에 해당하는 테이블 레코드를 찾아갈 수 있도록 주소 정보를 제공한다. 일반적으로 사용되는 B*Tree 인덱스는 테이블 레코드를 가리키는 rowid 목록을 키값과 함께 저장하는 구조다. 테이블에 100개 레코드가 있으면 인덱스에도 100개 rowid를 키값과 함께 저장한다....

Preview Image

현대자동차 H-Mobility 자율주행 과정에서 우수학습자 증서를 수여했다.

들어가며 약 한달 전인 2024년 2월 말. 우리집 우편함에 소포가 하나 도착했다. 책이 들어 있는 것 같은 소포를 살포시 열어보니 2023년 하반기에 참여한 현대자동차 H-Mobility Class에서 보내준 증서였다. 끝나고 현생 살다 보니 잠시 잊고있었는데 다시 봐서 반가웠다. 그리고 우수학습자로 선정되었다는 소식도 접하니 감사함과 ...

<오라클 성능 고도화 원리와 해법2> Ch01-08 인덱스 설계

오라클 성능 고도화 원리와 해법2 - Ch01-08 인덱스 설계 지금까지 다양한 인덱스 스캔 방식과 Random 액세스 최소화 원리, 스캔 효율화 원리에 대해 설명했다. 이제 이들 원리를 기초로 효과적인 인덱스 설계 방안은 무엇인지 설명하려고 한다. SQL 각각을 위해 최적화된 인덱스를 모두 생성할 수 있다면 SQL 튜닝과 인덱스 설계만큼 쉬운 것...

<오라클 성능 고도화 원리와 해법2> Ch01-07 인덱스 스캔효율

오라클 성능 고도화 원리와 해법2 - Ch01-07 인덱스 스캔효율 1권 6장 1절에서 블록 단위 I/O 원리를 설명하면서 Random 액세스와 Sequential 액세스의 차이점을 자세히 설명했다. Sequential 액세스는 레코드간 논리적 또는 물리적인 순서를 따라 차례대로 읽어나가는 방식을 말하고, Random 액세스는 레코드간 논리적, 물...