logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

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

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

박성호, 오수영 (지은이)
  |  
엑셈
2013-01-25
  |  
27,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
yes24 로딩중
교보문고 로딩중
영풍문고 로딩중
인터파크 로딩중
11st 로딩중
G마켓 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
로딩중

e-Book

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
aladin 17,500원 -10% 870원 14,880원 >

책 이미지

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

책 정보

· 제목 : SQL 튜닝의 시작 : SQL의 이해와 효율적인 작성법 
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 데이터베이스 프로그래밍 > SQL
· ISBN : 9788996817932
· 쪽수 : 391쪽

목차

서문

Chapter 01
SQL 튜닝의 시작은?


Chapter 02
서브쿼리와 성능 문제 이해하기

●서브쿼리에 대한 기본 내용 이해하기 7
-서브쿼리란 7
-서브쿼리의 사용 패턴에 대해 알아보자 8
●서브쿼리 동작방식 이해하기 12
-FILTER 동작방식 12
-조인 동작방식 19
-서브쿼리 동작방식을 제어하는 힌트들 27
●서브쿼리를 활용한 SQL 성능개선 38
-비효율적인 MINUS 대신 NOT EXISTS를 사용하자 38
-조인 대신 서브쿼리를 활용하자 45
-WHERE절의 서브쿼리를 조인으로 변경하자 48

Chapter 03
스칼라 서브쿼리의 이해와 효율적인 SQL 작성하기

●스칼라 서브쿼리의 특성 이해하기 55
-최대 결과 건수만큼 반복적으로 수행된다 55
-추출되는 데이터는 항상 1건만 유효하다 56
-데이터가 추출되지 않아도 된다 59
●스칼라 서브쿼리와 조인의 이해 및 활용하기 60
-스칼라 서브쿼리는 최종 결과 만큼 수행하자 60
-스칼라 서브쿼리와 조인의 관계로 보는 SQL 성능 문제 69

Chapter 04
WITH절 이해와 효율적인 SQL 작성하기

●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

Chapter 05
MERGE 구문 이해와 효율적인 SQL 작성하기

●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

Chapter 06
FUNCTION 수행과 SQL 성능 문제 이해하기

●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

Chapter 07
DECODE & CASE WHEN 이해 및 조건 문 처리하기

●DECODE 181
-구문 181
-구문에 대한 상세 설명 182
-DECODE와 성능 이슈 185
●CASE 206
-구문 207
-구문에 대한 상세 설명 207
-단순 CASE와 탐색 CASE 사용법 208
-예제를 통한 CASE의 사용법 209

Chapter 08
NULL 처리 구문 이해와 효율적인 SQL 작성하기

●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

Chapter 09
날짜 데이터 관련 함수 조회하기

●데이터 타입 간 날짜 데이터 제어하기 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

Chapter 10
임의의 데이터를 활용한 효율적인 SQL 작성하기

●CONNECT BY LEVEL로 데이터 추출하기 281
-임의의 숫자 만들기 281
-임의의 날짜 만들기 282
●CONNECT BY LEVEL 활용하기 283
-데이터 변환 시 CONNECT BY LEVEL 사용하기 283
-데이터 중복 조회 제거하기 285
-인덱스 처리 일량이 많은 경우 288

Chapter 11
컬럼 변형에 의한 SQL 성능 문제 이해하기

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

Chapter 12
조회 패턴에 맞게 SQL 실행계획 분기하기

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

Chapter 13
ROWNUM 이해와 관련 SQL 성능 문제 이해하기

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

Chapter 14
화면 PAGINATION 처리할 때 이것은 지키자

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

Index 391

저자소개

박성호 (지은이)    정보 더보기
POSCO SM(튜닝그룹) 파트에서 ERP, MES 튜닝 업무를 수행하였고, 현재는 ㈜엑셈에서 기술지원 및 수석 컨설턴트로 재직하고 있다. SK하이닉스, LG U+ 등 다수의 고객사 프로젝트에서 DB 튜닝업무를 수행하였으며, 저서로는『SQL 튜닝의 시작-SQL의 이해와 효율적인 작성법』이 있다.
펼치기
오수영 (지은이)    정보 더보기
현재 ㈜엑셈에서 DB컨설팅팀 책임 컨설턴트로 재직 중이며, 자사의 DBMS 성능관리 툴인 Maxgauge를 활용하여 기술지원 및 컨설턴트로 일하고 있다. T-Store, 우체국금융, 우체국 택배, 한화손해보험, 국방부, 한진 택배, KED 등에서 DBMS 성능 진단 및 개선 업무를 진행하였다.
펼치기
이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책