본문 바로가기

04번. IT 힌트얻기/▶ DB/ SQL

SORT MERGE JOIN SORT MERGE JOIN 은 연결 고리에 이상이 있는 경우 대용량의 자료를 조인할 경우 인덱스의 치명적인 단점인 랜덤 액세스와 오버헤드가 Nested Loop Join 의 장점을 넘어서 버리는 경우에 적절하게 사용할 수 있는 조인 방법 -> Join 조건에 해당되는 컬럼에 인덱스가 없을 경우 Nested Loop에서는 Full 스캔하게 되어 엄청난 오버헤드를 가지게 된다. 이점을 해결하기 위해 단 두번의 Scan으로 처리가 가능한 Sort Merge Join이나 Hash Join이 생겨나게 된것 SORT MERGE JOIN은 조인이 되는 각각의 테이블 자료를 스캔방식으로 읽어들이거나 인덱스를 사용하여 메모리로 읽어들입니다. 읽혀진 두 테이블의 조인 집합은 연결 고리 칼럼에 대하여 각각 정렬을 수행한 .. 더보기
ORACLE NESTED LOOP JOIN ORACLE NESTED LOOP JOIN #1 from 새로쓴 대용량 데이터베이스 솔루션 | 이화식 1. NESTED LOOP JOIN JOIN의 한가지 방법이다. NESTED LOOP 란 단어는 DRIVING(먼저 읽어들이는 테이블) 데이터를 가지고 루프를 돌리기 때문이다. Rows Row Source Operation ------- --------------------------------------------------- 14 NESTED LOOPS (cr=48 r=0 w=0 time=1081 us) 14 TABLE ACCESS FULL EMP (cr=18 r=0 w=0 time=394 us) 14 TABLE ACCESS BY INDEX ROWID DEPT (cr=30 r=0 w=0 time=52.. 더보기
SUM(DECODE...) 문제 1번은 GROUP BY의 활용에 대한 예제로서 보기에는 문제가 어려워 보이지만 조금만 고민하고, 조금만 생각을 바꿔본다면 하나의 Query로 처리가 된다는 것을 볼 수 있다. 절차적인 사고방식은 벗어버리고, 집합적인 사고를 가진다면 프로그램으로 데이터를 가져와서 처리하는 것보다 훨씬 더 쉽게, 그리고 간단하게 처리할 수 있다는 것을 느끼기 바란다. 문제 2번을 풀어보면 답안 2-1과 답안 2-2는 같은 합계가 나온다. 그러나 처리 일량을 생각해보면 2-1의 쿼리보다는 2-2의 쿼리가 좀 더 좋은 쿼리라 말할 수 있다. 잠시 왜 2-2 Query가 더 좋은 Query가 더 좋은 Query라 하는지 생각해 보기 바란다. 생각해 보면 아주 사소한 부분이라고도 할 수 있겠으나 분명 차이는 있다. 2-1은 .. 더보기
1. Function의 종류 더보기