본문 바로가기

추천 검색어

실시간 인기 검색어

SQL 튜닝의 시작 : SQL의 이해와 효율적인 작성법

박성호 , 오수영 지음
엑셈

2023년 09월 15일 출간

국내도서 : 2013년 01월 25일 출간

(개의 리뷰)
( 0% 의 구매자)
eBook 상품 정보
파일 정보 pdf (61.84MB)
ISBN 9791188427055
지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
교보eBook App 듣기(TTS) 불가능
TTS 란?
텍스트를 음성으로 읽어주는 기술입니다.
  • 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를​ 읽을 수 있습니다.
  • 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.

PDF 필기가능 (Android, iOS)
소득공제
소장
정가 : 17,500원

쿠폰적용가 15,750

10% 할인 | 5%P 적립

이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.

카드&결제 혜택

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 416P
  • 리뷰 작성 시, e교환권 추가 최대 200원

작품소개

이 상품이 속한 분야

SQL의 이해와 효율적인 작성법『SQL 튜닝의 시작』. SQL 튜닝의 기초개념부터 응용까지 설명한 책이다. SQL 튜닝이란 튜닝 대상이 되는 SQL을 이해하고, SQL이 가진 정보를 치밀하게 분석하여 얻어지는 결과일 뿐임을 인식하고, 차근차근 배워나갈 수 있도록 도왔다. 서브쿼리와 성능 문제 이해하기, 스칼라 서브쿼리의 이해와 효율적인 SQL 작성하기, WITH절 이해와 효율적인 SQL 작성하기 등의 내용으로 구성했다.
<b>Chapter 01
SQL 튜닝의 시작은? 1</b>

<b>Chapter 02
서브쿼리와 성능 문제 이해하기 7</b>
●서브쿼리에 대한 기본 내용 이해하기 7
-서브쿼리란 7
-서브쿼리의 사용 패턴에 대해 알아보자 8

●서브쿼리 동작방식 이해하기 12
-FILTER 동작방식 12
-조인 동작방식 19
-서브쿼리 동작방식을 제어하는 힌트들 27

●서브쿼리를 활용한 SQL 성능개선 38
-비효율적인 MINUS 대신 NOT EXISTS를 사용하자 38
-조인 대신 서브쿼리를 활용하자 45
-WHERE절의 서브쿼리를 조인으로 변경하자 48

<b>Chapter 03
스칼라 서브쿼리의 이해와 효율적인 SQL 작성하기 55</b>
●스칼라 서브쿼리의 특성 이해하기 55
-최대 결과 건수만큼 반복적으로 수행된다 55
-추출되는 데이터는 항상 1건만 유효하다 56
-데이터가 추출되지 않아도 된다 59

●스칼라 서브쿼리와 조인의 이해 및 활용하기 60
-스칼라 서브쿼리는 최종 결과 만큼 수행하자 60
-스칼라 서브쿼리와 조인의 관계로 보는 SQL 성능 문제 69

<b>Chapter 04
WITH절 이해와 효율적인 SQL 작성하기 81</b>
●WITH절 동작방식 이해하기 82
-MATERIALIZE 동작방식 82
-INLINE VIEW 동작방식 86

●SQL 성능 개선을 위한 WITH절 활용하기 89
-데이터 중복 액세스 제거하기 89
-VIEW PREDICATING 성능 문제 제거하기 90
-계층 쿼리의 데이터 처리 최소화 하기 95

●WITH절을 사용할 때 주의해야 할 점은? 98
-동시성이 높은 경우 MATERIALIZE 동작방식은 피하자 98
-추출 건수가 많은 경우 WITH절은 피하자 98
-WITH절 선언 부분은 SQL의 가장 앞에 위치시키자 99
-WITH절에 동작방식 힌트를 추가하자 100

<b>Chapter 05
MERGE 구문 이해와 효율적인 SQL 작성하기 103</b>
●MERGE 구문의 구성요소 알기 107
-INTO 절 107
-USING 절 108
-ON 절 108

●MERGE 구문으로 처리되는 데이터 이해하기 109
-MERGE_T1 테이블에 몇 건 UPDATE 될까? 109
-MERGE_T1 테이블에 몇 건 DELETE 될까? 111
-MERGE_T1 테이블에 몇 건 INSERT 될까? 112

●MERGE 구문 작성 시 발생할 수 있는 에러와 해결방법 알아보기 113
-TARGET TABLE과 SOURCE TABLE의 조인은 1:1이어야 한다 114
-UPDATE 컬럼은 ON절에 사용할 수 없다 116

●MERGE 구문은 다양한 형태의 DML을 지원한다 117
●MERGE 구문을 성능 문제에 활용하자 119

<b>Chapter 06
FUNCTION 수행과 SQL 성능 문제 이해하기 123</b>
●FUNCTION 기본내용들 이해하기 123
-USER DEFINED FUNCTION의 의미 123
-USER DEFINED FUNCTION의 특징과 장점 123
-USER DEFINED FUNCTION의 종류와 사용법 125

●FUNCTION 동작방식 이해하기 133
-SELECT절에 사용하는 FUNCTION의 동작방식 133
-WHERE절에 사용하는 FUNCTION의 동작방식 140

●Function 수행과 SQL 성능 문제 152
-Function은 최종 추출 결과만큼만 수행하자 152
-Function이 스칼라 서브쿼리에서 수행하도록 변경하자 158
-Function을 호출하는 값의 패턴을 분석하자 163
-Select절에 사용된 Function을 조인으로 변경하자 166
-Where절의 Function을 Select절로 옮기자 168

<b>Chapter 07
DECODE & CASE WHEN 이해 및 조건 문 처리하기 181</b>
●DECODE 181
-구문 181
-구문에 대한 상세 설명 182
-DECODE와 성능 이슈 185

●CASE 206
-구문 207
-구문에 대한 상세 설명 207
-단순 CASE와 탐색 CASE 사용법 208
-예제를 통한 CASE의 사용법 209

<b>Chapter 08
NULL 처리 구문 이해와 효율적인 SQL 작성하기 215</b>
●NULL 처리 함수 이해하기 220
-NVL () 220
-NVL2 () 222

●NVL 활용하기 224
-실행계획 분리하기 224
-IS NULL 조회 개선하기 227
●그룹 함수(COUNT, SUM, MAX, MIN)와 NVL 처리 228
●NULLABLE 컬럼 사용에 의한 비효율 COUNT 함수 처리 233
●IS NULL 조회에 대한 개선방법 찾기 238
-NVL 처리와 FUNCTION BASED INDEX 생성 241
-컬럼 속성 변경(DEFAULT 설정)과 NULL 데이터 업데이트 242
-컬럼 추가 및 인덱스 생성 후 WHERE절 변경 243

●IS NOT NULL 조회에 대한 개선방법 찾기 245
-다양한 IS NOT NULL 처리와 SQL 성능 문제 245
-조인 처리 시 IS NOT NULL 활용하기 249

●' '(BLANK)와 NULL 데이터 처리하기 251
-' '(BLANK) 데이터가 NULL일까? 251
-TRIM & NVL 처리 252
-' '와 NULL 데이터 처리 관련 성능 문제 252

<b>Chapter 09
날짜 데이터 관련 함수 조회하기 257</b>
●데이터 타입 간 날짜 데이터 제어하기 257
-DATE 조회 - 에러가 발생하는 경우 257
-DATE 조회 - 정상 조회 되는 경우 258
-잘못된 날짜 연산들 259

●일자, 시간, 분, 초 계산하기 260
●날짜와 관련된 유용한 함수들 263
-TO_DATE & TO_TIMESTAMP & TO_CHAR(datetime) 263
-ADD_MONTHS 269
-MONTHS_BETWEEN 270
-LAST_DAY 271
-NEXT_DAY 271
-ROUND 273
-TRUNC 274
-EXTRACT 275

<b>Chapter 10
임의의 데이터를 활용한 효율적인 SQL 작성하기 281</b>
●CONNECT BY LEVEL로 데이터 추출하기 281
-임의의 숫자 만들기 281
-임의의 날짜 만들기 282

●CONNECT BY LEVEL 활용하기 283
-데이터 변환 시 CONNECT BY LEVEL 사용하기 283
-데이터 중복 조회 제거하기 285
-인덱스 처리 일량이 많은 경우 288

<b>Chapter 11
컬럼 변형에 의한 SQL 성능 문제 이해하기 303</b>
●조회 컬럼과 변수의 데이터 타입을 맞추자 303
●컬럼에 불필요한 ORACLE 제공함수를 사용하지 말자 310
-부적절하게 FUNCTION을 컬럼에 사용하는 경우 310
-컬럼 변형으로 인해 인덱스의 MIN/MAX를 활용하지 못하는 경우 312
-파티션 키 컬럼 변형은 모든 파티션을 읽는다 315

<b>Chapter 12
조회 패턴에 맞게 SQL 실행계획 분기하기 323</b>
●많은 조회 패턴을 가진 SQL은 하나의 SQL이 아니다 323
●SQL의 조회 패턴 별 실행계획을 분기하자 326
-여러 조건을 가진 SQL의 실행계획 분기하기 326
-변수 값의 범위에 따라 SQL을 분리하자 330

<b>Chapter 13
ROWNUM 이해와 관련 SQL 성능 문제 이해하기 343</b>
●ROWNUM 데이터를 먼저 추출한 이후 조회하자 343
●ORDER BY와 ROWNUM을 같은 위치에 두지 말자 345
●ROWNUM=1은 ROWNUM<=1로 사용하자 347
●INDEX_DESC와 ROWNUM<=1을 함께 사용하지 말자 349
●ROWNUM<=1은 항상 빠르지 않다 353
●인라인 뷰에 ROWNUM을 추가할 때는 주의하자 357

<b>Chapter 14
화면 PAGINATION 처리할 때 이것은 지키자 363</b>
●ROWNUM 처리를 잘하자 365
●인덱스 컬럼 순서와 ORDER BY절 순서를 맞추자 371
●PLAN에 나타나는 오퍼레이션 중 COUNT에 속지 말자 372
●NESTED LOOPS JOIN을 사용하자 374
NESTED LOOPS JOIN에 비효율이 많지 않은 경우 효과적이다 374
기본적인 형태의 PAGINATION을 익히자 375

Index 391

<b>SQL 튜닝의 마술~?</b>
-결코 어렵지 않다. 단지 시작이 힘들 뿐~!

<b>SQL 튜닝은 어떻게 시작해야 할까요~?</b>
-SQL의 이해와 SQL의 효율적인 작성부터 시작하자~!

<b>SQL 튜닝은 “SQL + 튜닝” 이다. </b>
-SQL 튜닝이란 튜닝 대상이 되는 SQL을 이해하고, SQL이 가진 정보
(테이블/인덱스/칼럼의 정보 및 업무적 성격 등)를 치밀하게 분석하여
얻어지는 결과일 뿐이다.

작가정보

저자(글) 박성호

저자 박성호는 POSCO SM (튜닝그룹) 파트에서 ERP, MES 튜닝 업무를 수행하였고, ㈜엑셈에서 기술지원 및 컨설턴트로 일하고 있다. SK하이닉스, 하나은행, LG U+, SKT, 삼성전자 및 다수의 고객사 프로젝트에서 DB 튜닝 업무를 수행하였고, 현재 ㈜엑셈에서 DB컨설팅팀 수석 컨설턴트로 재직 중이다.

저자(글) 오수영

저자 오수영은 현재 ㈜엑셈에서 DB컨설팅팀 책임 컨설턴트로 재직 중이며, 자사의 DBMS 성능관리 툴인 Maxgauge를 활용하여 기술지원 및 컨설턴트로 일하고 있다. T-Store, 우체국금융, 우체국 택배, 한화손해보험, 국방부, 한진 택배, KED 등에서 DBMS 성능 진단 및 개선 업무를 진행하였다.

이 상품의 총서

Klover리뷰 (0)

Klover리뷰 안내
Klover(Kyobo-lover)는 교보를 애용해 주시는 고객님들이 남겨주신 평점과 감상을 바탕으로, 다양한 정보를 전달하는 교보문고의 리뷰 서비스입니다.
1. 리워드 안내
구매 후 90일 이내에 평점 작성 시 e교환권 100원을 적립해 드립니다.
  • - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
  • - 리워드는 1,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다. (5,000원 이상 상품으로 변경 예정, 2024년 9월 30일부터 적용)
  • - 리워드는 한 상품에 최초 1회만 제공됩니다.
  • - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
2. 운영 원칙 안내
Klover리뷰를 통한 리뷰를 작성해 주셔서 감사합니다. 자유로운 의사 표현의 공간인 만큼 타인에 대한 배려를 부탁합니다. 일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
  • 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
  • 도서와 무관한 내용의 리뷰
  • 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
  • 의성어나 의태어 등 내용의 의미가 없는 리뷰

구매 후 리뷰 작성 시, e교환권 100원 적립

문장수집

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여 주는 교보문고의 새로운 서비스 입니다. 교보eBook 앱에서 도서 열람 후 문장 하이라이트 하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 ‘좋아요’ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보없이 삭제될 수 있습니다.
리워드 안내
  • 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
  • e교환권은 적립일로부터 180일 동안 사용 가능합니다.
  • 리워드는 1,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다. (5,000원 이상 eBook으로 변경 예정, 2024년 9월 30일부터 적용)
  • 리워드는 한 상품에 최초 1회만 제공됩니다.
  • sam 이용권 구매 상품 / 선물받은 eBook / 오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.

구매 후 문장수집 작성 시, e교환권 100원 적립

    교보eBook 첫 방문을 환영 합니다!

    신규가입 혜택 지급이 완료 되었습니다.

    바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
    지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!

    교보e캐시 1,000원
    TOP
    신간 알림 안내
    SQL 튜닝의 시작 : SQL의 이해와 효율적인 작성법 웹툰 신간 알림이 신청되었습니다.
    신간 알림 안내
    SQL 튜닝의 시작 : SQL의 이해와 효율적인 작성법 웹툰 신간 알림이 취소되었습니다.
    리뷰작성
    • 구매 후 90일 이내 작성 시, e교환권 100원 (최초1회)
    • 리워드 제외 상품 : 마이 > 라이브러리 > Klover리뷰 > 리워드 안내 참고
    • 콘텐츠 다운로드 또는 바로보기 완료 후 리뷰 작성 시 익일 제공
    감성 태그

    가장 와 닿는 하나의 키워드를 선택해주세요.

    사진 첨부(선택) 0 / 5

    총 5MB 이하로 jpg,jpeg,png 파일만 업로드 가능합니다.

    신고/차단

    신고 사유를 선택해주세요.
    신고 내용은 이용약관 및 정책에 의해 처리됩니다.

    허위 신고일 경우, 신고자의 서비스 활동이 제한될 수
    있으니 유의하시어 신중하게 신고해주세요.


    이 글을 작성한 작성자의 모든 글은 블라인드 처리 됩니다.

    문장수집 작성

    구매 후 90일 이내 작성 시, e교환권 100원 적립

    eBook 문장수집은 웹에서 직접 타이핑 가능하나, 모바일 앱에서 도서를 열람하여 문장을 드래그하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다.

    P.
    SQL 튜닝의 시작 : SQL의 이해와 효율적인 작성법
    저자 모두보기
    낭독자 모두보기
    sam 이용권 선택
    님이 보유하신 이용권입니다.
    차감하실 sam이용권을 선택하세요.
    sam 이용권 선택
    님이 보유하신 이용권입니다.
    차감하실 sam이용권을 선택하세요.
    sam 이용권 선택
    님이 보유하신 프리미엄 이용권입니다.
    선물하실 sam이용권을 선택하세요.
    결제완료
    e캐시 원 결제 계속 하시겠습니까?
    교보 e캐시 간편 결제
    sam 열람권 선물하기
    • 보유 권수 / 선물할 권수
      0권 / 1
    • 받는사람 이름
      받는사람 휴대전화
    • 구매한 이용권의 대한 잔여권수를 선물할 수 있습니다.
    • 열람권은 1인당 1권씩 선물 가능합니다.
    • 선물한 열람권이 ‘미등록’ 상태일 경우에만 ‘열람권 선물내역’화면에서 선물취소 가능합니다.
    • 선물한 열람권의 등록유효기간은 14일 입니다.
      (상대방이 기한내에 등록하지 않을 경우 소멸됩니다.)
    • 무제한 이용권일 경우 열람권 선물이 불가합니다.
    이 상품의 총서 전체보기
    네이버 책을 통해서 교보eBook 첫 구매 시
    교보e캐시 지급해 드립니다.
    교보e캐시 1,000원
    • 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
    • 한 ID당 최초 1회 지급 / sam 이용권 제외
    • 네이버 책을 통해 교보eBook 구매 이력이 없는 회원 대상
    • 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)
    구글바이액션을 통해서 교보eBook
    첫 구매 시 교보e캐시 지급해 드립니다.
    교보e캐시 1,000원
    • 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
    • 한 ID당 최초 1회 지급 / sam 이용권 제외
    • 구글바이액션을 통해 교보eBook 구매 이력이 없는 회원 대상
    • 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)