TempDB – plac zabaw SQL Servera
TempDB to laboratorium SQL Servera. Wszystko, co chwilowe – tabele tymczasowe, sortowania, wersje stron, spool’e, hash joiny, wersje snapshot isolation – trafia właśnie tam. Jeśli baza danych to umysł, TempDB jest jego warsztatem.
Brak równowagi w TempDB spowalnia cały system, jak zbyt mały blat stołu w laboratorium.
⚙️ Co trafia do TempDB
- tabele tymczasowe (
#local,##global) - zmienne tabelaryczne (
@table) - sortowania i hashowania (ORDER BY, GROUP BY, JOIN)
- wersje stron przy snapshot isolation / RCSI
- operacje DBCC CHECKDB
- spool’e i worktable/workfile
🧠 Architektura TempDB
TempDB jest wspólna dla całego serwera (jedna na instancję) i odtwarza się przy restarcie.
- wiele plików danych + jeden plik logu
- zalecane wiele równych plików danych
- autogrowth w MB (nie w %), pre-size po starcie
🔍 Zajrzyj w DMV
| |
| |
🧪 Szybki test – presja na TempDB
| |
Podczas testu śledź DMV i perfmon.
⚖️ Dobre praktyki
- 1 plik na rdzeń do 8, potem ~¼ rdzeni (zwykle 8–12)
- równe rozmiary i growth w MB (np. 512 MB)
- szybki dysk (SSD/NVMe), pre-size po starcie
- monitoruj
PAGELATCH_%natempdb:
| |
📂 Repo: TempDB
„Nie ma kreatywności bez kontrolowanego chaosu.” — inspiracja: Feynman