Livoa LogoLivoa
KIẾN TRÚC BỘ NHỚ SQL SERVER (CHI TIẾT & CƠ CHẾ)
II. PLAN CACHE - “BỘ NÃO”


(QUYẾT ĐỊNH)

I. BUFFER POOL - “TRÁI TIM”
III. TRANSACTION LOG & LOG BUFFER


(WAL)

Query Submitted
Check Plan Cache
PLAN EXISTS?
(Reuse Plan - Tiết kiệm CPU, Nhanh)
(Compile New Plan - Tốn CPU, Chậm) Quan trọng nhưng KHÔNG tối ưu trực tiếp ở đây!
RECOMPILE KHI :


- Stats thay đổi

- Index đổi

- Parameter Sniffing...

DATA FILE (MDF, NDF)
BUFFER POOL
CLEAN PAGE (Dữ liệu mới đọc, chưa sửa)
DIRTY PAGE (Đã sửa, chưa ghi đĩa)
BUFFER HIT (Siêu nhanh)
BUFFER POOL EXTENSION (BPE) - SSD Cache thứ cấp (Chỉ chứa CLEAN PAGES)
⚠ Buffer Pool nhỏ → PAGE EVICTION cao → I/O TĂNG → CHẬM HỆ THỐNG!
CHECKPOINT FLUSH DIRTY PAGES (Định kỳ)
LOG BUFFER (RAM)
FLUSH LOG TRƯỚC (Write-Ahead Logging - WAL) → COMMIT AN TOÀN
TRANSACTION LOG FILE (LDF - DISK)
VLFs (Virtual Log Files)
ACTIVE (Chứa giao dịch chưa xong)
INACTIVE (Đã commit + backup)
BACKUP LOG → Đánh dấu "An toàn để xóa" → Tái sử dụng VLF
⚠ VẤN ĐỀ LOG: - Không backup Log, Full Recovery Model, - Long-running Transaction → LOG PHÌNH TO!
Query
PLAN CACHE (Tìm plan)
EXECUTION PLAN
BUFFER POOL (Lấy dữ liệu - Hit/Miss)
Dữ liệu có thay đổi?
LOG BUFFER (Ghi log)
TRANSACTION LOG (Flush WAL)
DIRTY PAGE (Đánh dấu)
CHECKPOINT (Flush Data File)

SQL Learning

by Binh Le

0
0 uses