SQL 튜닝의 시작 : SQL의 이해와 효율적인 작성법
2023년 09월 15일 출간
국내도서 : 2013년 01월 25일 출간
- eBook 상품 정보
- 파일 정보 pdf (61.84MB)
- ISBN 9791188427055
- 지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
-
교보eBook App
듣기(TTS) 불가능
TTS 란?텍스트를 음성으로 읽어주는 기술입니다.
- 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를 읽을 수 있습니다.
- 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.
PDF 필기가능 (Android, iOS)
쿠폰적용가 15,750원
10% 할인 | 5%P 적립이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.
카드&결제 혜택
- 5만원 이상 구매 시 추가 2,000P
- 3만원 이상 구매 시, 등급별 2~4% 추가 최대 416P
- 리뷰 작성 시, e교환권 추가 최대 200원
작품소개
이 상품이 속한 분야
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이 가진 정보
(테이블/인덱스/칼럼의 정보 및 업무적 성격 등)를 치밀하게 분석하여
얻어지는 결과일 뿐이다.
작가정보
저자(글) 오수영
저자 오수영은 현재 ㈜엑셈에서 DB컨설팅팀 책임 컨설턴트로 재직 중이며, 자사의 DBMS 성능관리 툴인 Maxgauge를 활용하여 기술지원 및 컨설턴트로 일하고 있다. T-Store, 우체국금융, 우체국 택배, 한화손해보험, 국방부, 한진 택배, KED 등에서 DBMS 성능 진단 및 개선 업무를 진행하였다.
이 상품의 총서
Klover리뷰 (0)
- - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- - 리워드는 1,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다. (5,000원 이상 상품으로 변경 예정, 2024년 9월 30일부터 적용)
- - 리워드는 한 상품에 최초 1회만 제공됩니다.
- - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
구매 후 리뷰 작성 시, e교환권 100원 적립
문장수집
- 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
- e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- 리워드는 1,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다. (5,000원 이상 eBook으로 변경 예정, 2024년 9월 30일부터 적용)
- 리워드는 한 상품에 최초 1회만 제공됩니다.
- sam 이용권 구매 상품 / 선물받은 eBook / 오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.
구매 후 문장수집 작성 시, e교환권 100원 적립
신규가입 혜택 지급이 완료 되었습니다.
바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!
- 구매 후 90일 이내 작성 시, e교환권 100원 (최초1회)
- 리워드 제외 상품 : 마이 > 라이브러리 > Klover리뷰 > 리워드 안내 참고
- 콘텐츠 다운로드 또는 바로보기 완료 후 리뷰 작성 시 익일 제공
가장 와 닿는 하나의 키워드를 선택해주세요.
총 5MB 이하로 jpg,jpeg,png 파일만 업로드 가능합니다.
신고 사유를 선택해주세요.
신고 내용은 이용약관 및 정책에 의해 처리됩니다.
허위 신고일 경우, 신고자의 서비스 활동이 제한될 수
있으니 유의하시어 신중하게 신고해주세요.
이 글을 작성한 작성자의 모든 글은 블라인드 처리 됩니다.
구매 후 90일 이내 작성 시, e교환권 100원 적립
eBook 문장수집은 웹에서 직접 타이핑 가능하나, 모바일 앱에서 도서를 열람하여 문장을 드래그하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다.
차감하실 sam이용권을 선택하세요.
차감하실 sam이용권을 선택하세요.
선물하실 sam이용권을 선택하세요.
-
보유 권수 / 선물할 권수0권 / 1권
-
받는사람 이름받는사람 휴대전화
- 구매한 이용권의 대한 잔여권수를 선물할 수 있습니다.
- 열람권은 1인당 1권씩 선물 가능합니다.
- 선물한 열람권이 ‘미등록’ 상태일 경우에만 ‘열람권 선물내역’화면에서 선물취소 가능합니다.
- 선물한 열람권의 등록유효기간은 14일 입니다.
(상대방이 기한내에 등록하지 않을 경우 소멸됩니다.) - 무제한 이용권일 경우 열람권 선물이 불가합니다.
첫 구매 시 교보e캐시 지급해 드립니다.
- 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
- 한 ID당 최초 1회 지급 / sam 이용권 제외
- 구글바이액션을 통해 교보eBook 구매 이력이 없는 회원 대상
- 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)