Batch Mode na Rowstore – ewolucja zapytań
SQL Server 2022 przyniósł rewolucję: Batch Mode on Rowstore.
Zamiast przetwarzać każdy wiersz osobno, silnik potrafi działać grupowo – jak procesor SIMD w świecie danych.
To ewolucja w stronę analitycznej wydajności, bez potrzeby kolumnowych indeksów.
🔍 Zajrzyj w DMV
| |
⚙️ Jak to działa
Batch Mode przetwarza dane w blokach (batchach) po kilkaset wierszy zamiast rekord po rekordzie.
Każdy operator (np. agregacja, sortowanie, join) korzysta z tego samego bloku danych, dzięki czemu redukuje narzut CPU i zwiększa przepustowość.
To jak różnica między przenoszeniem cegieł po jednej a całymi paletami.
Silnik decyduje automatycznie, czy Batch Mode przyniesie korzyść — nie trzeba mieć indeksów kolumnowych ani specjalnych opcji.
Wystarczy, że zapytanie ma charakter analityczny, a dane są wystarczająco duże, by opłacało się działać „hurtowo”.
🧠 Eksperymentuj
Można wymusić Batch Mode nawet w zapytaniach typowo OLTP, by porównać efekty:
| |
Porównaj plan wykonania z i bez tego hintu.
Zwróć uwagę na różnicę w liczbie operatorów Batch vs Row, czas CPU i ilość odczytanych stron logicznych.
„Ewolucja to sztuka wykorzystania starych narzędzi w nowy sposób.” — SQLManiak
🧩 Notatka SQLManiaka
Batch Mode on Rowstore to nie trik — to zapowiedź kierunku, w którym zmierza silnik SQL Server:
inteligentna adaptacja bez zmiany modelu danych. Uczy się działać analitycznie, nawet w świecie transakcyjnym.
To właśnie definicja ewolucji – przystosowanie, nie rewolucja.