LabHub

SQL 실전 · 성능과 실행계획 · 퀴즈

퀴즈: 성능과 실행계획

LabHub 에서 이어서 보기

문항 7개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. EXPLAIN 의 cost 값에 대한 설명으로 옳은 것은?

    1. 밀리초 단위로 환산해 놓은, 예상되는 실행 시간이다
    2. 순차 페이지 한 장 읽기를 1.0 으로 놓은 임의 단위이며 같은 쿼리의 계획 후보를 비교하는 데만 의미가 있다
    3. 읽어야 할 것으로 추정한 행 수다
    4. 예상되는 메모리 사용량이다
  2. 실행 계획을 읽을 때 가장 중요한 신호는?

    1. Seq Scan 노드의 존재 여부
    2. 예상 rows 와 실제 rows 의 괴리
    3. cost 의 절대값
    4. 노드의 개수
  3. actual time=0.008..0.011 rows=4 loops=52310 인 노드의 실제 총 기여 시간은?

    1. 약 575ms
    2. 약 0.011ms
    3. 약 4ms
    4. 계획에 적혀 있다
  4. Hash 노드에 Batches: 32 로 표시되었다. 가장 효과적인 조치는?

    1. 조인 컬럼에 인덱스를 추가한다
    2. ANALYZE 로 통계를 갱신한다
    3. 해당 세션의 work_mem 을 올린다
    4. 쿼리에서 조인 순서를 바꾼다
  5. 계획에서 Filter 와 Index Cond 의 차이는?

    1. 표기만 다를 뿐 동일하다
    2. Filter 가 항상 더 빠르다
    3. Index Cond 는 인덱스가 없을 때 표시된다
    4. Filter 는 행을 읽은 뒤 버리는 것이고 Index Cond 는 애초에 읽지 않는 것이다
  6. 같은 쿼리가 어제는 20ms, 오늘은 900ms 였다. 계획은 동일했다. 가장 먼저 확인할 것은?

    1. Buffers 의 shared read 비율 (캐시에 없어 디스크로 내려간 블록)
    2. 마지막 통계 갱신 시각
    3. 대상 테이블에 걸려 있는 인덱스의 개수와 종류
    4. 세션의 트랜잭션 격리 수준
  7. EXPLAIN ANALYZE 로 UPDATE 문을 분석할 때 반드시 해야 할 일은?

    1. 읽기 전용 복제본에서 실행한다
    2. LIMIT 를 붙인다
    3. 트랜잭션으로 감싸고 롤백한다
    4. 옵션에 SAFE 를 추가한다