들어가며
이 책에 대해
【제1장】 CPU 리소스의 최적화
1.1 멀티 스레드 프로그래밍
1.1.1 문맥 교환
1.2 윈도우 스케줄러와 SQL 서버
1.2.1 윈도 스케줄러가 인식할 수 없는 대기 상태
1.3 SQL 서버 내의 스케줄러
1.3.1 SQLOS 스케줄러란?
1.3.2 SQLOS 스케줄러를 구성하는 컴포넌트
- 스케줄러
- 작업자
- 작업자 스레드 풀
- 러너블 큐(Runnable Queue
- 워크 리퀘스트 큐(Work Request Queue
- I/O 리퀘스트 리스트(I/O Request List
- 웨이터 리스트(Waiter List
1.3.3 스케줄러의 동작
1.3.4 SQLOS 스케줄러가 사용하는 기술
1.4 SQLOS 스케줄러를 모니터링한다
1.4.1 동적 관리 뷰의 참조
- runnable_tasks_count
- current_workers_count
- work_queue_count
1.5 제1장 정리
【제2장】디스크 I/O 조작의 이해
2.1 SQL 서버가 관리하는 데이터베이스의 실체
2.1.1 데이터 파일(확장자 .mdf, .ndf
2.1.2 트랜잭션 로그 파일(확장자 .ldf
2.2 데이터베이스 파일 액세스 패턴
2.2.1 데이터 파일
- 온라인 트랜잭션 처리(OLTP 시스템의 경우
- 데이터웨어하우스(DWH의 경우
2.2.2 트랜잭션 로그 파일
2.3 SQL 서버가 수행하는 I/O의 특징적 동작
2.3.1 미리 읽기(Read-Ahead
2.3.2 체크포인트(checkpoint
2.3.3 집중 기록(Eager Write
2.3.4 지연 기록(Lazy Write
2.4 SQL 서버가 사용하는 I/O용 API
2.4.1 데이터 파일 및 트랜잭션 로그 파일의 오픈
- CreaterFile 함수
2.4.2 데이터 파일 및 트랜잭션 로그 파일에서 읽어들이기
- ReadFileScatter 함수
■ 이 책의 테마 5
● 내부 컴포넌트의 이해(1: 제1장부터 제3장까지는 SQL 서버가 처리를 실행하기 위해 어떻게 컴퓨터의 리소스(프로세서, 디스크 I/O 및 메모리를 효율적으로 관리하는지를 설명한다.
● 다양한 데이터 구조: 제4장부터 제7장까지의 각 장에서는 SQL 서버가 관리하는 다양한 오브젝트(데이터베이스와 테이블, 인덱스 등의 상세한 구조를 소개한다. 이들에 대한 이해는 적절한 데이터베이스와 오브젝트의 배치 같은 논리 설계와 물리 설계 시의 중요한 지침이 된다.
● 내부 컴포넌트의 이해(2: 제8장에서는 앞의 내용에서 이해한 SQL 서버의 동작과 오브젝트 구조를 토대로 SQL 서버가 어떻게 테마를 다루는지를 알아본다. 제9장에서는 클라이언트와의 커뮤니케이션에서 빼놓을 수 없는 네트워크 관련 특성을 소개한다.
● 운용의 안정화: 제10장에서는 비즈니스의 지속성에 필수적인 데이터베이스의 백업과 복원에 대해 살펴본다. 또 11장에서는 전형적인 트러블에 대한 대처 방법과 퍼포먼스 튜닝을 지원하는 툴을 소개한다.
● 향후 전망: 제12장에서는 향후 전망으로 멀티 플랫폼 전개와 클라우드 상의 데이터베이스를 소개한다.