[SQLD 자격증] 2과목 | 옵티마이저 JOIN 설명 & 문제풀이

    728x90
    반응형

    조인 문제

    1. 한 테이블 내에서 연관관계를 가진 두 컬럼 간의 조인
    2. 서로 연관된 컬럼이 없을 경우 수행하는 조인

     

    정답

    1. SELF JOIN
      >> 테이블 명과 컬럼명이 모두 일치하기 때문에 꼭, ALIAS를 써줘야한다.
      SELECT T1.col1 , T2.col1
      FROM 테이블명 T1, 테이블명 T2
      WHERE T1.col1 = T2.col1 ;
    2. CROSS JOIN

     

    옵티마이저 조인(Optimizer Join)

    • Nested Loop JOIN
      • 선행 테이블(외부 테이블, Driving Table)을 먼저 조회하여 연결 대상 데이터를 찾고, 그 다음 테이블(내부 테이블)을 연결함
      • 먼저 처리되는 데이터의 양 - 선행 테이블(외부테이블, Driving Table)의 처리범위에 따라 처리량이 결정됨
      • 선행 테이블의 크기가 작은 것을 찾아야 함
      • 로우들간의 처리, 테이블 간의 처리 모두 순차적으로 일어난다.
      • 최적의 순서를 찾아주는 것이 중요하다.
      • RANDOM ACCESS 발생 (선행테이블에서 두 번째 테이블을 참조할 때 발생함)
      • 성능 지연을 줄이기 위해 RANDOM ACCESS가 적은 양이 발생하도록 해야함
      • 선행테이블 처리 범위가 많거나, 연결 테이블에서의 랜덤액세스 범위가 많다면 SORT MERGE JOIN보다 불리해지는 경우가 있음
      • INDEX 가 필요, Unique Index 시 유리함
      • 온라인 트랜잭션 처리(OLTP)에 유용함
    • Sort Merge JOIN
      • 두 테이블을 각각 정렬하고, 완료되면 병합함
      • 정렬이 발생하기 때문에 데이터 양이 많을 경우 느려진다.
      • 정렬 대상 데이터 양이 많을 경우 임시 디스크를 사용하기 때문에, 성능이 저하됨
      • EQIU JOIN, non-EQUI JOIN 모두 가능함
    • HASH JOIN
      • 두 테이블 중 작은 테이블을 HASH 메모리에 로딩하고, 두 테이블의 조인 키를 사용하여 해시 테이블을 생성함
      • 두 테이블을 동시에 스캔함
      • 선행 테이블에는 작은 데이터가 먼저 와야함.
      • 시스템 자원을 최대한 활용 가능하며, 너무 많이 사용될 우려도 있음
      • 대용량 처리에 빠른 처리 속도를 보임
      • EQUI JOIN에서만 가능함
      • INDEX를 사용하지 않음
      • 해시조인은 먼저 선행테이블을 결정하고, 선행테이블에서 주어진 조건(WHERE)에 해당하는 레코드를 선택한다.
        해당 행이 선택되면 JOIN key를 기준으로 해시 함수를 사용해서, 해시 테이블을 메인 메모리에 생성하고
        후행테이블에서 주어진 조건에 만족하는 행을 찾는다.
        후행 테이블의 JOIN key를 사용해서 해시함수를 적용하여 해당 버킷을 검색한다.

     

    옵티마이저 조인 문제

    정답

     

    PL/SQL

    • SQL을 확장시켜 다양한 절차적 프로그래밍을 가능하게 한 언어
    • Block 구조로 되어있어서 기능별로 모듈화가 가능
    • Declare 문으로 시작하며, 변수 및 상수를 선언하여 사용 가능
    • DML, IF, LOOP 문 등 다양한 절차적 언어를 사용
    • Oracle에 내장되어 있음 동일한 언어를 사용하는 프로그램과 호환이 가능
    • 응용 프로그램의 성능을 향상시킴

     

    PL/SQL 문제

     

    정답

     

    분산 데이터베이스

    • 하나의 데이터베이스시스템(DBMS)이 네트워크를 통해 물리적으로 분리된 데이터베이스들을 제어하는 형태의
      DB
    • 성능 향상 : 분산 데이터베이스가 병렬 작업을 하기 때문에 속도가 빠름
    • 모듈화가 되어 있어 다른 모듈에 영향을 주지 않고 시스템 갱신이 가능
    • 분산 데이터베이스 추가를 통한 용량 확장이 용이함
    • 중요 데이터를 보호하기 용이함
    • 신뢰성이 높음
    • 관리와 통제가 어려움
    • 보안관리, 무결성 통제가 어려움
    • 복잡한 구조를 가지고 있음

     


     

    SQLD 목차 바로가기

    SQLD 과목 목차 링크
    1과목 
    데이터 모델링의 이해

    (10문항 출제)
    데이터 모델링의 이해 데이터모델링의 이해, 엔터티, 속성
    관계, 식별자
    데이터 모델과 성능 성능 데이터 모델링, 정규화, 반정규화 설명 & 문제풀이
    SQLD 2과목
    SQL 기본및 활용

    (40문항 출제)
    SQL 기본 관계형 데이터베이스 개요 및 DCL(GRANT, REVOKE) 설명 & 문제풀이
    DDL(CREAT, ALTER, DROP, RENAME, TRUNCATE) 설명 & 문제풀이
    DML(INSERT, UPDATE, DELETE) 설명 & 문제풀이
    TCL(ROLLBACK, SAVEPOINT, COMMIT) 설명 & 문제풀이
    DML(SLELECT) 기본구조 설명 & 문제풀이
    DML(SELECT) 함수(문자형, 숫자형, 날짜형, 형변환) 설명 & 문제풀이
    DML(SELECT) DECODE, CASE WHEN, ORDER BY 설명 & 문제풀이
    WHERE 절 연산자, 문자열 연산자, 임시테이블, VIEW 설명 & 문제풀이
    NULL 함수, GROUP BY, HAVING, ROWNUM & ROWID 설명 & 문제풀이
    SQL 활용 GROUP 함수 설명 & 문제풀이
    JOIN, UNION, MINUS, 서브쿼리 설명 & 문제풀이
    계층형 조회 설명 & 문제풀이
    WINDOW 함수 전체 설명 & 문제풀이
    SQL 최적화 기본원리 테이블 파티션, 옵티마이저, 인덱스 설명 & 문제풀이
    옵티마이저 JOIN, PL-SQL, 분산 데이터베이스 설명 & 문제풀이

     

    728x90
    반응형

    댓글