이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제
SQL Server 튜닝 원리와 해법
양장
정재우
비투엔컨설팅 2010.08.30.
베스트
OS/데이터베이스 top100 1주
가격
39,000
5 37,050
YES포인트?
390원 (1%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  해외배송 가능?
  •  문화비소득공제 가능

책소개

목차

시작하기 전에
1. 누가 읽어야 하는가
2. 미리 알아야 할 것들
(1) 쿼리 최적화
(2) 실행계획(Execution Plan)
(3) 실행계획 해석하기
3. 미리 준비해야 할 것들
(1) 예제 데이터베이스 설치
(2) 실습용 데이터베이스 설치

1장 인덱스 기초
1. 인덱스 구조
(1) B-tree 구조
(2) 인덱스 탐색과 북마크 룩업
2. 인덱스 특징
(1) 인덱스 키 컬럼 값으로 정렬
(2) 인덱스 페이지 분할(split)이 발생
(3) 첫 번째 컬럼에 대한 검색조건이 필요
(4) 인덱스 컬럼 가공 시 비효율 발생
3. 인덱스 종류
(1) 클러스터형 인덱스
(2) 넌클러스터형 인덱스
4. 인덱스 액세스 방식
(1) 인덱스 스캔(Index Scan)
(2) 인덱스 탐색(Index Seek)

2장 인덱스 활용
1. 북마크 룩업 최소화
(1) 인덱스에 컬럼 추가
(2) 클러스터형 인덱스로 변경
(3) 커버된(Covered) 인덱스
2. 인덱스 탐색 효율
(1) 모든 컬럼에 equal 조건을 사용했을 때
(2) 선행 컬럼에 between 조건을 사용했을 때
(3) in-list를 활용해 between 조건의 비효율 제거
(4) 선분이력의 인덱스 탐색 효율
3. 인덱스 설계
- 인덱스 설계 실습

3장 조인 원리와 활용
1. 중첩 루프(Nested Loops) 조인
(1) 기본 메커니즘
(2) 힌트로 NL 조인을 제어하는 방법
(3) NL 조인의 수행 과정 분석
(4) NL 조인의 특징
2. 병합(Merge) 조인
(1) 기본 메커니즘
(2) 힌트로 병합 조인을 제어하는 방법
(3) 병합 조인의 수행 과정 분석
(4) 병합 조인의 특징
(5) 병합 조인 실습
3. 해시(Hash) 조인
(1) 기본 메커니즘
(2) 힌트로 해시 조인을 제어하는 방법
(3) 해시 조인의 수행 과정 분석
(4) 해시 조인의 특징
4. 조인 순서와 성능
(1) NL 조인의 순서
(2) 해시 조인의 순서

4장 정렬의 최적화
1. 정렬이 발생하는 경우
(1) order by 사용 시
(2) group by 사용 시
(3) distinct 사용 시
(4) union 사용 시
(5) 순위 함수 사용 시
(6) 병합 조인 시
2. 인덱스로 정렬을 제거
(1) order by 조건을 만족하도록 인덱스에 컬럼 추가
(2) group by 조건을 만족하도록 인덱스에 컬럼 추가
(3) min·max 대상 컬럼을 인덱스에 추가
(4) 순위 함수의 over 절을 만족하도록 인덱스에 컬럼 추가
3. 정렬을 최소화하는 SQL 작성
(1) 불필요한 distinct 제거
(2) 비효율적인 count 개선
(3) 부적절한 union 대신 union all 사용
(4) NL 조인을 활용 - 부분적인 부분범위 처리
4. 페이지 처리
(1) 앞쪽 페이지를 주로 조회할 때
(2) 뒤쪽 페이지도 자주 조회할 때
(3) 적절한 인덱스가 없어서 정렬이 불가피할 때

5장 파티션
1. 파티션 개요
(1) 분할된 뷰(Partitioned View)
(2) 파티션(Partition)
2. 테이블 파티션
(1) 파티션 테이블 생성 절차
(2) 파티션 테이블 실행계획
(3) 파티션 경계 값 지정 시 주의 사항
(4) 파티션 컬럼 가공에 의한 비효율
3. 인덱스 파티션
(1) 인덱스 파티션 유형
(2) 인덱스 파티션 유형별 특징
(3) 파티션 인덱스 생성 절차
4. 슬라이딩 윈도우(Sliding Window)
(1) 파티션 하나를 두 개로 분할(split)
(2) 파티션 두 개를 하나로 병합(merge)
(3) 넌파티션 테이블과 파티션 테이블 간의 파티션 전환(switch)

6장 2005, 2008 버전의 신기능
1. T-SQL 향상
(1) 공통 테이블 식(CTE)
(2) CTE와 재귀적(Recursive) 쿼리
(3) 순위 창 함수(Ranking Window Functions)
(4) 새로운 연산자(New Operator)
(5) merge 문
2. Snapshot isolation
(1) 읽기와 쓰기가 서로 간섭하는 문제
(2) 문장 수준의 읽기 일관성
(3) 로우 버전 관리(Row Versioning)
(4) read committed with snapshot 격리 수준
(5) snapshot 격리 수준
3. 기타
(1) 인덱스 생성 시 include 옵션
(2) 온라인 인덱스 작업
(3) 새로운 데이터 형식

저자 소개

저자 : 정재우
연세대학교에서 생명공학을 전공하였고, 1996년 LG-EDS (現 LG-CNS에 입사하여 교보자동차보험, 엔코아컨설팅을 거쳐 현재 (주)비투엔컨설팅에서 수석 컨설턴트로 재직 중이다. 재무회계 시스템 설계, 개발 및 운영을 담당하다가 DBMS 성능 개선에 매력을 느껴 컨설턴트로 변신하였다. 부동산114, KT, CJ케이블넷, 오스템임플란트, SKT, 수출보험공사, 우리투자증권, SK건설, 한국거래소(KRX) 등 다양한 고객사에서 DB설계, 성능 진단, 성능 개선, 최적화 등의 컨설팅 업무를 수행하였다.

품목정보

발행일
2010년 08월 30일
판형
양장 ?
쪽수, 무게, 크기
492쪽 | 1470g | 188*254*30mm
ISBN13
9788996246039

책 속으로

2004년 봄쯤이었나 보다. 단지 Sybase ASE를 많이 사용해 보았다는 이유로(SQL Server 초기 버전은 Sybase의 영향을 많이 받았기 때문에 T-SQL 문법, 저장 프로시저, 시스템 테이블 등이 매우 비슷하다), 그전까지 접속조차 해 본 적이 없는 Microsoft SQL Server 2000을 튜닝하게 되었다.

RDBMS의 기본 원리와 튜닝 기법을 어느 정도는 알고 있었지만, 대부분 오라클과 Sybase ASE에 기반을 둔 것들이었다. SQL Server에 대한 실전 경험이 없었기 때문에, 낮에 새롭게 나타난 문제점을 퇴근 후 밤늦게까지 연구하고서 그다음 날 출근하자마자 해결하고는 했다. 다행히 타 DBMS에 대한 지식과 경험을 바탕으로 순조롭게 진행할 수 있었고 프로젝트는 성공적으로 마무리되었다.

한 달이 채 되지 않는 짧은 기간이었지만, RDBMS를 관통하는 핵심 원리를 이해하면 어떤 제품에서도 해법을 찾아낼 수 있다는 것을 몸소 깨달았다. 그리고 이때 축적된 연구 자료와 프로젝트 결과물을 뼈대로 삼아, 앞으로 살을 붙여 나가서 언젠가는 책으로 엮어내겠다고 마음먹었다.

그로부터 6년이 지난 2010년이 되어서야, 'SQL Server 튜닝, 원리와 해법'이라는 제목으로 책을 출간하게 되었다. 세월이 흐른 만큼 SQL Server도 2005를 거쳐 2008 버전까지 출시되었다. 버전이 높아지고 새로운 기능이 추가되는 모습을 보면서 왠지 뿌듯한 마음도 들었지만, 다른 한편으로는 그동안 연구하고 축적해 온 자료가 점점 낡아지는 게 걱정스러웠다.

혹시 2008 버전을 넘어 새로운 버전이 출시되기라도 하면 도저히 책을 쓰지 못할 것 같았다. 2009년 가을이 끝나갈 즈음, 더는 미룰 수 없다는 생각에 틈틈이 원고를 쓰기 시작했다. 이미 2008 버전이 널리 사용되기 시작했지만, (필자가 생각하기에 SQL 튜닝에 유용한) 주요 기능의 대부분은 2005 버전에 추가되었기 때문에 이 책은 2005 버전을 기준으로 2008 버전의 신기능을 소개하는 형태로 쓰였다.

제목인 'SQL Server 튜닝, 원리와 해법'을 통해 알 수 있듯이, 이 책은 SQL 튜닝에 기본이 되는 핵심 원리를 바탕으로 성능 문제에 대한 해법을 제시하는 데 집중하고 있다. 그밖에 SQL Server가 제공하는 유용한 도구 및 기능에 대해서는 거의 소개하지 않았는데, 이런 내용을 다룬 책들은 이미 시중에 충분히 나와 있다고 생각한다(게다가 새로운 도구와 기능에 대한 일반적인 내용은 온라인 설명서에 잘 설명되어 있다). 필자는 다른 책과의 차별화를 위해 철저하게 SQL 튜닝 관점에서만 접근하고자 노력했다.

이 책의 목차는 다음과 같다.

1. 인덱스 기초
2. 인덱스 활용
3. 조인 원리와 활용
4. 정렬의 최적화
5. 파티션
6. 2005, 2008 버전의 신기능

필자가 생각하기에, SQL 튜닝 전문가로 나아가는 데 반드시 필요한 기초 지식은 인덱스, 조인 그리고 정렬이다. 목차를 보면 알겠지만, 이 책은 이들 요소를 차례대로 다루고 있다. 다시 한 번 강조하지만, (남들이 잘 모르는 신기능과 잔기술을 먼저, 그리고 많이 익히려고 애쓰기보다는) RDBMS 고유의 핵심 원리와 해법을 정확히 이해하고 이를 적시적지(適時適地)에 응용, 활용할 줄 아는 능력이 더 중요하다.

기초가 튼튼한 사람은 어느 순간 실력이 빠르게 향상되는 것을 느낄 것이다. 모쪼록 1장 아니 그전에 '시작하기 전에' 부분을 먼고 읽고서 각 장을 차근차근 머릿속에 담아 나가기 바란다.

지난 7개월 동안 바쁜 프로젝트 일정 속에서도 꾸준히 집필할 수 있도록 응원해 주신 조광원 사장님, 김형태 부사장님 그리고 모든 임원분께 감사드린다. 그리고 출퇴근 시간을 쪼개가며 원고 전체를 세심하게 검토하고 조언을 아끼지 않은 조시형 수석께 특별히 감사의 말을 전한다. 아울러, 어려운 부탁임에도 마다하지 않고 원고 교정에 힘을 보태 준 손진영, 김익서 두 후배 그리고 SQL Server FOI 팀원 모두에게 감사한다.

그리고 사랑하는 아내와 귀여운 두 딸에게는 미안한 마음과 고마움의 뜻을 동시에 전하고 싶다(특히 아내는 바쁜 척하는 아빠 대신 아이들과 놀아주는 것도 모자라 틈틈이 원고를 읽고 오타까지 찾아 주었다. 덕분에, 유치원 교사인 아내는 SQL, 인덱스, 테이블 등의 용어를 이해하게 되었다). 마지막으로, 필자의 인생 롤모델이자 영원한 후원자인 부모님께 진심으로 감사드리며 두 분이 항상 건강하시기를 기원한다.

2010년 7월 31일 정재우

---저자 서문 중에서

출판사 리뷰

SQL Server 튜닝, 원리와 해법
"데이터베이스의 핵심 원리를 바탕으로 성능 문제에 대한 해법을 제시"


SQL Server 튜닝에 필수적인 요소를 중심으로, RDBMS를 관통하는 핵심 원리를 친절하고 명쾌하게 설명합니다. SQL Server를 비롯해 어떤 DBMS 환경에서도 성능 문제에 대한 최적의 해법을 제시할 수 있는 최고의 지침서가 될 것입니다.

이 책에서 다루는 내용은 다음과 같습니다.

1. 인덱스 기초
2. 인덱스 활용
3. 조인 원리와 활용
4. 정렬의 최적화
5. 파티션
6. 2005, 2008 버전의 신기능

인덱스, 조인, 정렬 등 RDBMS의 핵심 원리와 튜닝 기법을 차례대로 설명할 뿐만 아니라, 다양한 실전 경험을 통해 검증된 사례를 함께 소개하고 있습니다.

SQL Server 중급 수준을 넘어 고급 이상으로 나아가고자 하는 독자에게 이 책이 징검다리가 되어 줄 것입니다.

리뷰/한줄평2

리뷰

8.6 리뷰 총점

한줄평

첫번째 한줄평을 남겨주세요.