막힘없이 PostgreSQL (PostgreSQL 성능관리를 위한 핵심 매커니즘)

막힘없이 PostgreSQL (PostgreSQL 성능관리를 위한 핵심 매커니즘)

$35.31
Description
데이터 읽기 일관성을 위해 튜플의 버전은 어떻게 관리 되지?
Vacuum은 왜 필요하고 데이터베이스 성능과 무슨 관계가 있지?
테이블과 튜플의 Lock은 어떻게 구현되지?
옵티마이져가 sql 실행 비용을 어떻게 계산하지?
쿼리 성능을 위해 새롭게 소개된 조인 방식을 알고 싶은데?
저자

임경석,김철환,박관규,김규민

(주)엑셈DB기술본부의이사로재직중이며,데이터베이스튜닝컨설팅사업을총괄하고있다.포스코,한국거래소,우리은행,삼성전자,LG전자,SK하이닉스등다수의고객사컨설팅및성능분석을수행하였다.옮긴책으로는“오라클코어:DBA와개발자를위한필수매커니즘”이있다.

목차

CHAPTER01PostgreSQL아키텍처
1.주요프로세스
1.1Postmaster프로세스
1.2Backend프로세스
1.3Background프로세스

2.메모리
2.1공유메모리(SharedMemory)
2.2로컬메모리(LocalMemory)

3.PostgreSQL구조
3.1논리구조(LogicalStructure)
3.2물리구조(PhysicalStructure)

4.SharedBuffer
4.1SharedBuffer구성요소
4.2SharedBuffer에서데이터읽기
4.3ClockSweep
4.4PostgreSQLIO전략

5.WAL(Write-AheadLog)
5.1WAL세그먼트파일
5.2체크포인트(Checkpoint)
5.3WAL세그먼트파일관리
5.4WAL레코드기록하기
5.5WAL파일을이용한데이터복구


CHAPTER02트랜잭션과MVCC
1.트랜잭션격리수준(TransactionIsolationLevel)
1.1PostgreSQL에서의격리수준

2.데이터저장구조
2.1페이지구조
2.2TransactionID
2.3튜플구조
2.4튜플버전
2.5인덱스와튜플

3.스냅샷(Snapshot)
3.1스냅샷이란?
3.2스냅샷과튜플가시성
3.3스냅샷과데이터베이스Horizon
3.4ExportingSnapshot
3.5Snapshottooold

4.단일페이지정리와HOT업데이트
4.1Fillfactor
4.2단일페이지정리(SinglePageCleanup)
4.3HOT(HeapOnlyTuple)Update

5.MVCC(MultiVersionConcurrencyControl)
5.1MVCC란?
5.2XID순환구조와FrozenXID
5.3Age

6.VacuumandAutovacuum
6.1Vacuum
6.2Autovacuum


CHAPTER03락(LOCK)
1.객체레벨락(ObjectLevelLock)
1.1객체타입
1.2객체락모드

2.행레벨락(RowLevelLock)
2.1행레벨락모드
2.2다중트랜잭션(Multitransactions)
2.3튜플락대기
2.4DeadLock

3.메모리레벨락(MemoryLevelLock)
3.1Light-WeightLock(LWLocks)
3.2Spinlocks
3.3BufferPinLock
3.4WALBufferLock
3.5메모리락모니터링


CHAPTER04SQLExecution
1.CostBasedOptimizer
1.1CBOCost

2.PostgreSQL통계정보
2.1수동통계정보수집
2.2통계정보관리

3.실행계획
3.1실행계획추출방법
3.2실행계획분석

4.SQL처리과정
4.1SQL처리프로세스
4.2PrepareStatement

5.스캔방법(ScanMethod)
5.1SequentialScan
5.2IndexScan
5.3BitmapIndexScan
5.4IndexOnlyScan
5.5CoveringIndex

6.조인방법(JoinMethod)
6.1NestedLoopJoin
6.2HashJoin
6.3Sort-MergeJoin


Appendix
1.격리수준에따른이상현상
1.1ReadCommitted
1.2RepeatableRead
1.3Serializable

2.테이블팽창(Bloating)모니터링

3.SQL모니터링
3.1pg_stat_statements
3.2pg_stat_monitor