-
[SQLP] 자격증 합격 수기 및 팁IT/데이터자격증 기록 2018. 10. 10. 17:22
준비기간
2016.11 ~ 2017.8
- 오라클구조/튜닝/성능에 관해 아무것도 모른상태로 '그림으로 배우는 오라클구조', 'SQL튜닝의 시작' 책으로 스터디 진행(전부 처음 접해보는 내용이라 봐도봐도 이해 안됐었습니다.. 이때는 자격증 획득 목표보단 주말에 조금이라도 공부하려고 시작)
2017.9 ~ 2018.6
- 본격적으로 SQLP자격증 획득을 위해 SQL 전문가가이드 공부 (인터넷에 있는 요약본은 1과목만 보고 책으로만 반복)
- 오라클 성능고도화 1,2권 공부 (1권은 전체 한번정도보고 필요할때마다 찾아가며 공부했고 2권은 꾸준히 계속 반복
단.. 2권에 sqlp시험범위를 벗어나게 깊게 들어가는 부분이 있어 그런부분 제외해가며 공부, 처음엔 그런 구분이 안되서 무작정봤지만
한 두번 시험치르고 나니 조금씩 감이왔습니다)
- 30점짜리 서술형은 블로그에 올라와있는 문제들 공부하고 성능고도화2권에 있는 쿼리설명하는 부분 반복학습
2017.12 - 첫번째 시험
튜닝관련 경험이 없어 서술형이 너무 어려웠었습니다.
지나고 나서 생각해보면 이때 나온 서술형이 가장 쉬웠었는데..
처음 시험에서만 시간이 조금남아 객관식 한번 더 체크할 수 있었습니다 물론 떨어졌지만
2018.03 - 두번째 시험
두번째 시험에서는 시험 보고 바로 떨어질걸 확신했었습니다
서술형을 거의 한시간 반동안 풀고
객관식을 조급한 마음으로 풀어 떨어질걸 확신하고..
바로 다시 다음시험 준비했었습니다.
2018.06 - 세번째 시험
세번째 시험에서는 두번의 불합격이 있었기 때문에
시간배분 및 준비 등 확실하게 해서 조금은 자신감있게 문제 풀고
시험끝나고 붙을 가능성이 조금은 있다고 생각했었습니다.
두달동안 서술형 위주로 공부했었는데 효과가 있었던거 같습니다..!
서술형 공부하면서 자동으로 객관식 개념들도 다시 정리하게 되었고
무엇보다 시험준비하면서 대충 포인트만 끄적거리지 않고
인덱스 조인순서 힌트 등 하나도 빠짐없이 시험이다 생각하고 다 써가면서 연습했었는데
많은 도움된거 같습니다.
그리고 문제를 풀면서 출제자의 의도?가 조금씩 보여
객관식에서 긴지문도 조금은 빠르게 풀 수 있었습니다.
팁1
아래는 제가 시험공부하면서 적어둔 서술형 관련 팁입니다..
물론 제가 공부한 기준으로 적었기 때문에
도움이 안될 수 있지만 조금이나마 도움이 됐으면 하는 마음에!
- NL 조인할 때 조건없는 테이블 맨 뒤에 읽도록!!!(단, 테이블건수가 엄청작으면 맨앞)
- 무슨 수 일 때 제일 바깥에 함수가 COUNT(CASE WHEN .... 해당조건 THEN 1... ) 이런식으로!
- 힌트 정확히 / 기존 인덱스 있는지 확인하기
- 컬럼 비교할 때 컬럼의 데이터형 확실히 보기 (컬럼은 문자형인데 숫자형이 비교로 오면 인덱스 안탐)
- 테이블 ROW가 작게 나오는 테이블을 먼저 읽히기 즉, 조건이 있는 테이블 먼저 읽히기
- 야간배치다, 대용량이다 라는 말 있으면 HASH로 풀리기, 해시조인일때 쓸때없이 인덱스 주지않기!
- 특정컬럼이 A, B인데 이 값이 늘어날 수 있다면 EXISTS로 풀리기(IN -> EXISTS)
- SELECT절에 한두개 컬럼만 추가해주게될 때 테이블을 읽지 않아도 되면 그렇게 한다 Coverd Index
- 특정컬럼이 아주 변별력이 높은 컬럼이다 라는 힌트가 있으면 드라이빙테이블이 되도록 해라 라는 힌트
- 페이징처리 쿼리에서 마지막 order by는 rownum값으로 처리해줘도된다!
- 테이블 변경하고 테이블의 관계가 정확히 기본키가 있지 않은 이상 마지막에 Group by 해주는거 잊지 않기
- distinct 없애고 exists로 바꿀 때 데이터 group by해주어야 한다. 1:M관계 테이블 조인할 때 결과 건수가 잘 못나올 수 있기 때문
- 인덱스 주는 컬럼에 맞춰서 오른쪽 변수 형변환 제대로 해주기 인덱스 주는 컬럼이 묵시적형변환 되면 인덱스 사용안될 수 있음
- push_pred를 쓸꺼면 no_merge와 같이 확실하게 써주기(또한 내가 일부로 인라인뷰로 짯을 때
NO_MERGE 확실하게 써주기)
- NO_MERGE 위치 최상단주면 NO_MERGE(A) 이렇게 써주고 서브쿼리에 쓸꺼면 NO_MERGE써준다 PUSH_PRED 위치 최상단
- 문제에서 날짜형식 CHAR(8)로 들어올 경우 조건으로 사용할 때 BETWEEN A AND B 로 쓰면 안되고
A >= ??, B < ? + 1 이런식으로 써야 놓치는 부분없이 다 읽을 수 있다.
- 테이블을 무리하게 SEMI조인 인라인뷰로 돌리려 하지 말고 주어진 조건내에서 인덱스,힌트를 최대한 유도하여 문제 풀도록 괜히 전체 구조를 바꾸려 하면 엉킴!
- CSV DOWNLOAD 등, 전체 범위로 처리하는데다 자료건수 엄청 많다는 힌트가 있으면 NL조인보단 HASH로 푸는게 더 좋다.!
- 야간 배치로 수행되는 SQL이다. 이는 NL조인보다 HASH조인으로 유도해야하는 힌트 + append..등 과 같이 일괄처리 힌트 주면됨
- 파티션처리 테이블은 인덱스 탈필요없이 해당 파티션조건에 해당하면 풀테이블 스캔!
- 자동 형변환되는거 잘보기...DATE형식/숫자형식/''따옴표 있나 없나
- 페이징처리일 땐 스칼라 서브쿼리가능, 전체처리일 땐 조인으로 해결
팁2
SQL전문가가이드
오라클 성능고도화1/2권 전체목차 및 간단한 설명 정리한 내용입니다.
공부하면서 모르는 부분이 생기면 바로 찾아가서 해당챕터 공부할 때 쓰면 유용합니다.
참고
2018/10/08 - [IT/Sqlp-Oracle] - SQLP 전문가가이드 목차정리
2018/10/08 - [IT/Sqlp-Oracle] - 오라클 성능 고도화1,2 목차정리
팁3
SQLP를 준비하면서 헷갈리거나 중요하다고 생각한 부분
요약 및 정리한것입니다.
참고
2018/10/10 - [IT/Sqlp-Oracle] - [SQLD/SQLP] 전문가가이드 1과목 데이터모델링 암기 요약 정리
2018/10/10 - [IT/Sqlp-Oracle] - [SQLD/SQLP] 전문가가이드 2과목 SQL기본 및 활용 암기 요약 정리
2018/10/10 - [IT/Sqlp-Oracle] - [SQLD/SQLP] 전문가가이드 3과목 1장 아키텍쳐 기반 튜닝원리 암기 요약 정리 (+오라클성능고도화)
2018/10/10 - [IT/Sqlp-Oracle] - [SQLD/SQLP] 전문가가이드 3과목 2장 Lock과 트랜잭션 동시성제어 암기 요약 정리 (+오라클성능고도화)
2018/10/10 - [IT/Sqlp-Oracle] - [SQLD/SQLP] 전문가가이드 3과목 3장 옵티마이저원리 암기 요약 정리 (+오라클성능고도화)
2018/10/10 - [IT/Sqlp-Oracle] - [SQLD/SQLP] 전문가가이드 3과목 4장 인덱스와조인 암기 요약 정리 (+오라클성능고도화)
2018/10/10 - [IT/Sqlp-Oracle] - [SQLD/SQLP] 전문가가이드 3과목 5장 고급SQL튜닝 암기 요약 정리 (+오라클성능고도화)
'IT > 데이터자격증 기록' 카테고리의 다른 글
DAP자격증을 취득한 계기 (feat. 토이프로젝트더라도 효율적으로 설계하고싶어) (0) 2024.02.05 [DAP] 자격증 합격 수기 및 팁 (12) 2021.05.11 Oracle 아키텍처 구조 설명과 흐름 (2) 2018.10.10 [SQLD/SQLP] 전문가가이드 3과목 5장 고급SQL튜닝 암기 요약 정리 (+오라클성능고도화) (0) 2018.10.10 [SQLD/SQLP] 전문가가이드 3과목 4장 인덱스와조인 암기 요약 정리 (+오라클성능고도화) (0) 2018.10.10 댓글