책소개
마이크로소프트의 SQL Server를 효율적으로 운영하기 위해 필요한 내용들을 담고 있다. 초반부에는 시스템 설정에서부터 백업 및 데이터 전송 최적화와 관련된 내용을 다루고 있다. 그리고 중반부에는 액세스 패턴과 파티션, 조인, 잠금 등 튜닝에 필요한 기초 내용과 데이터 분석 툴과 실전 튜닝에 대해 설명하고 있다. 그리고 후반부에는 장애 조치 클러스터와 미러링, 로그 전달과 BI에 대한 내용들을 설명하고 있다.
목차
Part 1. Maintenance
Chapter 01. 시스템 설정
01. CPU
1.1 하이퍼 스레드와 전원 사용 계획
1.2 프로세서 사용 확인
02. 메모리
2.1 메모리 사용 계획
2.2 Lock Pages In Memory 옵션
2.3 페이징 파일 위치
03. 디스크
3.1 Disk Partition Alignment
3.2 디스크 구성 전략
04. MS-DTC 설정
4.1 DTC 설정
05. 네트워크(NIC) 설정
5.1 전원 관리 설정
06. SynAttackProtect 설정
07. 바이러스 백신 및 침입탐지 소프트웨어
Chapter 02. SQL Server 설정
01. 서비스 팩, 핫픽스, 기타 업데이트 설치
1.1 SQL Server 버전 확인
1.2 기본 디렉토리 설정
02. SQL Service 설정
03. 서비스 시작 계정 최소화 설정
3.1 SQL Server 서비스용 계정 생성
3.2 SQL Server 설치 서비스 계정 설정
3.3 SQL 로그인 계정 설정
3.4 SQL 계정 삭제
3.5 관리자용 계정 생성
3.6 SQL Server 서비스 시작 계정 등록
3.7 SQL Server 서비스 계정 그룹 추가
3.8 데이터 파일 즉시 초기화 SQL Server 계정 추가
04. SQL Server Error Logs 설정 및 SQL Server Agent Logs 설정
4.1 SQL Server Error Logs 설정
4.2 SQL Server Agent Logs 설정
4.3 SQL Server Error 로그 및 SQL Server Agent 로그 확인
05. Min / Max server memory 설정
06. 추적 플래그 설정
6.1 SQL Server 시작 매개변수 설정
07. 포트 변경 및 서버 Alias 사용
7.1 SQL Server NIC 카드의 모든 IP에 포트 변경
7.2 SQL Server NIC 카드의 각각 IP에 포트 변경
7.3 SQL Server Alias 설정
7.4 64bit SQL Alias 설정시 주의 사항
08. SQL Server 2005 이상에서 관리자 연결(DAC) 사용
8.1 SQLOMD 및 OSQL 명령어 접속 방법
09. SQL Server 구성 옵션 관리
9.1 전체 구성 옵션 확인하기
9.2 특정 구성 옵션 확인&변경
9.3 SQL Server 2008 구성 옵션
Chapter 03 데이터베이스 설정
01. SQL Server 데이터베이스 용량 설정
1.1 데이터베이스 최대 크기 설정
1.2 데이터베이스 파일 자동 증가 설정
1.3 데이터베이스 파일 그룹 설정
02. SQL Server 인스턴스 기본 데이터베이스 설정
03. tempdb 설정
Chapter 04. SQL Server 메모리
01. SQL Server 메모리 이해하기
1.1 SQL Server 메모리 작동 방식
1.2 32비트 시스템 메모리 특징
1.3 메모리 설정을 해야하는 이유
02. 메모리 설정 옵션들
2.1 부팅 옵션
2.2 시스템 옵션
2.3 SP_CONFIGURE 옵션
2.4 Trace flag 옵션
03. Min / Max 메모리 설정하기
3.1 메모리 크기 별 권장 메모리 설정
3.2 메모리 크기와 사용량 분석
3.3 메모리 설정 예제
Chapter 05. 데이터베이스 백업과 복원
01. 백업의 유형
1.1 전체(Full) 백업
1.2 차등(Differential) 백업
1.3 트랜잭션 로그 백업
1.4 파일 및 파일 그룹 백업
1.5 부분 백업
1.6 차등 부분 백업
1.7 복사 전용 백업
1.8 미러된 백업
02. 복구 모델의 이해
2.1 단순 복구 모델
2.2 대량 로그 복구 모델
2.3 전체 복구 모델
03. 주요 데이터베이스 백업과 복원 활용
3.1 전체 데이터베이스 백업과 복원
3.2 데이터베이스 차등 백업과 복원
3.3 트랜잭션 로그 백업과 복원
3.4 특정 시점(Point in time) 복원
3.5 다중 장치 분산 백업과 복원
3.6 단계별(Piecemeal) 복원
3.7 비상 로그(Tail-log) 백업을 통한 복원
04. 백업 압축 기능
4.1 백업 압축 개요
4.2 일반 백업과 백업 압축 비교
Chapter 06. 데이터 전송 최적화
01. 최소 로깅(Minimal logging)과 복구 모델
02. SELECT INTO와 INSERT SELECT
03. 시나리오별 트랜잭션 로그 기록 테스트
04. TF610(Trace flag 610)
05. 복구 모델의 변경
5.1 단순 복구 모델로 변경
5.2 대량 로그 복구 모델로 변경
06. 인덱스
07. 데이터 전송 명령들
7.1 BULK INSERT
7.2 BCP
7.3 SSIS
7.4 SELECT INTO, INSERT SELECT
Part 2. Performance Tuning
Chapter 07. 쿼리 튜닝의 기본
01. 데이터 액세스
1.1 데이터 저장 단위
1.2 테이블과 인덱스 구조
02. 액세스 패턴
2.1 용어 설명
2.2 액세스 패턴의 종류
2.3 액세스 전략
03. 조인의 종류와 특징
3.1 중첩 루프 조인(Nested Loop Join)
3.2 머지 조인(Merge Join)
3.3 해시 조인(Hash Join)
3.4 APPLY
3.5 행 크기 제한과 조인
04. 병렬 처리
4.1 병렬 처리 개념과 처리 순서
4.2 소프트 NUMA 설정
4.3 설정 확인
4.4 병렬 처리의 성능 분석 예제
05. 파티션
5.1 파티션 테이블 개념
5.2 자주 활용되는 파티션 기술 및 이해
06. 잠금
6.1 잠금(Lock)이란?
6.2 잠금의 격리 수준
6.3 잠금 승격
6.4 교착 상태(Deadlock)
6.5 잠금의 해결 방안들
07. 대기 분석
7.1 대기 유형
7.2 대기 분석 예제
7.3 대기 진단용 프로시저
7.4 대기 진단용 확장 프로시저
Chapter 08 툴을 이용한 분석
01. Perfmon
1.1 Perfmon의 사용 방법
1.2 Perfmon을 이용한 성능 데이터 수집
02. SQL Server 프로파일러
2.1 SQL Server 프로파일러 사용 방법
2.2 쿼리를 이용한 이벤트 추적 사용
2.3 SQL Server 프로파일러와 Perfmon 데이터의 교차 분석
03. ReadTrace
3.1 ReadTrace의 설치
3.2 ReadTrace의 사용 방법
3.3 ReadTrace를 이용하여 문제 상황 분석 예제
04. SQLDiag/PSSDiag와 Diag Manager
4.1 Diag Manager의 각 영역별 설명
4.2 Diag Manager를 이용해 SQLDiag 파일 생성
4.3 SQLDiag 수집
05. SQL Nexus
5.1 SQL Nexus의 사용 방법
06. SQLIOSim
6.1 SQLIOSim 다운로드
6.2 SQLIOSim의 사용 방법
07. OStress
7.1 OStress의 사용 방법
08. DTCPing / DTCTester
8.1 DTCPing
8.2 DTCTester
09. Netmon(Network Monitor)
9.1 Netmon의 설치
9.2 Netmon의 사용 방법
Chapter 09 실전 쿼리 튜닝
01. 논리적 읽기 수
02. 형 변환
2.1 예제 1 살펴보기
2.2 예제 2 살펴보기
2.3 예제 3 살펴보기
03. 실행 계획의 비용 비교
04. 실행 계획 캐시 영향도
4.1 첫 번째 사례 살펴보기
4.2 두 번째 사례 살펴보기
05. 통계 불량
5.1 예제를 통한 이해
5.2 예측 가능한 성능 구현을 위한 적용 방법
06. 외래키
6.1 개요
6.2 예제를 통한 이해
07. 제약 조건
7.1 DISTINCT 쿼리
08. 인라인 뷰(Inline View)
8.1 뷰 병합 이슈
8.2 WHERE 절의 순서 문제
09. CPU
9.1 CPU 이슈 1
10. MEMORY
10.1 Memory 이슈
10.2 예제 실습
11. DISK
11.1 64KB I/O vs 8KB I/O
11.2 스토리지 관련 모든 최적화 제거
11.3 Optimized 성능 측정
11.4 OPTIMIZED & UNORDERED PREFETCH
11.5 병렬 제거 & UNORDERED PREFETCH & 명시적 SORT
11.6 병렬 & UNORDERED PREFETCH & 명시적 SORT
Part 3. High Availability
Chapter 10. 마이크로소프트 장애 조치 클러스터
01. 장애 조치 클러스터
1.1 사용 목적과 다른 솔루션과의 차이점
1.2 서버 클러스터 구현 모델
02. 설치 전 준비사항
2.1 구성 가능 환경
2.2 장애 조치 클러스터 프로세스
2.3 구성 정보 워크시트
2.4 iSCSI Software Target을 이용한 SAN 스토리지 구성
2.5 네트워크 구성
2.6 도메인 사용자 설정
03. 구축
3.1 시스템 준비 도구(Sysprep, System Preparation)
3.2 1+0 액티브/패시브
3.3 1+1 액티브/액티브
04. Slipstream을 이용한 설치 파일 만들기
4.1 Slipstream의 사용 방법
4.2 명령 프롬프트에서 SQL Server 2008 R2 설치
Chapter 11. 미러링(Mirroring)
01. 구성과 특징
1.1 사용 목적
1.2 운영 모드
1.3 동작 방식
02. 가용성 시나리오
03. 구축 전 준비사항
3.1 구성을 위한 준비
04. 구축
4.1 2008 R2 모니터링 서버가 없는 미러링 구축
4.2 2008 R2 모니터링 서버가 있는 미러링 구축
4.3 2008 R2 T-SQL로 미러링 구성하기
4.4 2008 R2 인증키 로그인 방식을 이용한 미러링 구축
4.5 SQL Server Denali에서의 미러링 구축
05. 운영시 고려사항
5.1 장애 유형 및 해결 방안
5.2 성능 모니터링을 통한 데이터베이스 상태 확인
5.3 프로파일링 이벤트
06. 활용
6.1 버전 업그레이드 및 패치
6.2 단일 데이터베이스 failover시 전체 데이터베이스 failover시키기
07. 예제 애플리케이션 실습
08. 더 높은 가용성을 위한 복합 구성
8.1 미러링+로그 전달
8.2 미러링+복제
09. 제거
Chapter 12. 복제(Replication)
01. 사용 목적과 복제 유형
1.1 사용 목적
1.2 복제 유형
1.3 운영 모드와 환경
02. 가용성 시나리오
2.1 중앙 게시자 모델
2.2 중앙 구독자 모델
2.3 피어 투 피어(Peer To Peer) 모델
03. 설치 전 준비사항
3.1 개요 및 주요 고려 사항
3.2 스냅숏 복제에 대한 고려 사항
3.3 트랜잭션 복제에 대한 고려 사항
3.4 병합 복제에 대한 고려 사항
04. 구축
4.1 스냅숏 복제
4.2 트랜잭션 복제
4.3 병합 복제
05. 운영시 고려사항
5.1 장애 꿀형 및 해결 방안
5.2 복제 모니터링
5.3 성능 모니터링을 통한 복제 상태 확인
5.4 프로파일러를 통한 모니터링
06. 활용
6.1 아티클 추가하기
07. 제거
7.1 SSMS를 이용한 제거
7.2 T-SQL을 이용한 제거
Chapter 13 로그 전달(Log Shipping)
01. 다양한 구성과 특징
1.1 사용 목적
1.2 로그 전달 상세 동작 방식
02. 구축 전 준비 사항
2.1 준비 작업
03. 구축
3.1 모니터링 없는 로그 전달 구성
3.2 모니터링 서버를 포함한 로그 전달
3.3 T-SQL로 구성
04. 운영시 고려사항
4.1 장애 유형 및 해결 방안
4.2 오류 케이스
4.3 모니터링 정보 테이블 살펴보기
4.4 로그 전달 보고서
05. 로그 전달 업데이트
5.1 SQL Server 2000→SQL Server 2008 R2 업그레이드
5.2 SQL Server 2005→2008 R2 업그레이드(단일 보조 서버 구성)
5.3 SQL Server 2005→2008 R2 업그레이드(여러 보조 서버가 있는 구성)
5.4 주 서버와 보조 서버의 역할 전환
06. 고가용성을 위한 복합 구성
6.1 설정에 따른 구성 방법
6.2 복합 구성에서의 장애 조치
07. 제거
7.1 SSMS로 제거하기
7.2 T-SQL로 제거하기
Part 4. BI
Chapter 14. SSIS
01. DW를 위한 시스템 설정
02. SSIS 소개와 특징
2.1 SSIS 살펴보기
2.2 주요 특징
03. 패키지
3.1 부모, 자식 패키지
3.2 패키지 프레임워크의 필요성
3.3 패키지 프레임워크의 구성
3.4 패키지 환경 설정
3.5 자식 패키지 호출
3.6 ODS(META) 변경 감지
3.7 패키지 로깅
3.8 패키지 탬플릿 등록
04. 이관
4.1 대용량 이기종 이관
4.2 데이터 이관 작업 최적화
Chapter 15. SSAS
01. 일반적으로 나쁜 구성의 예
1.1 경고 사인을 무시하고 어떻게 여기까지 왔을까?
1.2 대형 차원의 문제
1.3 큰 고유 카운트 측정값 그룹
1.4 다대다 차원의 문제
1.5 부모/자식 차원의 문제
1.6 파티션의 문제
1.7 ROLAP 처리의 문제점
1.8 프로세싱(팩트 차원 집계 처리)
02. 고성능 처리 방안(튜닝)
2.1 SSAS 파티션 처리시 RDB와의 설정을 고려한 처리 방안
2.2 다중 사용자 설정
2.3 「PreAllocate」
2.4 BufferMemoryLimit 및 Merging
2.5 Connection Setting
2.6 로컬 SQL Server 데이터 원본에 대한 공유 메모리를 사용
2.7 Data와 Index를 나누어 처리
2.8 큐브 이중화
2.9 캐시 Warm
2.10 ASSP & 연결된 서버
2.11 사용 빈도 기반 최적화