SAP HANA, jako platforma in-memory, oferuje wyjątkową wydajność i elastyczność w przetwarzaniu danych. Jednak by w pełni wykorzystać jej potencjał, niezbędne jest aktywne monitorowanie i zarządzanie zużyciem pamięci, CPU oraz optymalizacja zapytań SQL. W tym artykule omawiamy najważniejsze aspekty związane z zarządzaniem wydajnością i pamięcią w SAP HANA oraz przedstawiamy sprawdzone narzędzia i dobre praktyki.
Architektura pamięci SAP HANA
Główne typy pamięci:
-
Virtual Memory – suma wszystkich zarezerwowanych przestrzeni przez procesy HANA
-
Resident Memory – pamięć realnie załadowana do RAM
-
Used Memory – całkowita pamięć aktualnie w użyciu przez HANA
-
Code + Stack Memory – kod binarny + kontekst wątków systemowych
-
Table Memory – dane z kolumnowych i wierszowych tabel w RAM
-
Working Memory – pamięć dla przetwarzania zapytań i operacji tymczasowych
🔍 Monitoruj M_MEMORY dla szczegółowej analizy struktury pamięci.
Zarządzanie pamięcią – komponenty i limity
Parametry konfiguracyjne:
-
global_allocation_limit – maksymalna ilość pamięci RAM dla całego systemu HANA
-
allocation_limit – limit dla konkretnego serwisu (np. indexserver)
-
statement_memory_limit – ograniczenie zużycia pamięci przez jedno zapytanie SQL
Rekomendacje:
-
Ustaw
global_allocation_limit
na poziomie licencji (np. 384 GB → 393216 MB) -
Monitoruj
M_SERVICE_MEMORY
– szukaj serwisów zużywających ponadprzeciętną ilość RAM -
W systemach produkcyjnych ustaw
statement_memory_limit
dla ochrony przed zapytaniami „zjadającymi” zasoby
Monitorowanie wykorzystania CPU
SAP HANA może intensywnie wykorzystywać CPU, szczególnie przy złożonych zapytaniach.
Narzędzia:
-
Performance Monitor (HANA Cockpit / Studio)
-
Widok
M_SERVICE_STATISTICS
iM_THREADS
-
Kafelki w HANA Cockpit: CPU Usage, Load History
Wskaźniki:
-
Użycie CPU > 85% przez dłuższy czas może wskazywać na problemy
-
Długo działające wątki – identyfikuj w
M_ACTIVE_STATEMENTS
Diagnostyka:
Analiza drogich zapytań (Expensive Statements)
Czym są „expensive statements”?
To zapytania SQL, które zużywają dużo zasobów – czasu CPU, I/O, pamięci.
Widoki diagnostyczne:
-
M_EXPENSIVE_STATEMENTS
-
M_SQL_PLAN_CACHE
-
M_SQL_EXECUTION_PLAN
Narzędzia:
-
SQL Analyzer – analiza planów zapytań
-
Plan Visualizer (PlanViz) – graficzna analiza wykonania zapytania
💡 Włącz śledzenie drogich zapytań, ustawiając progowy czas wykonania (np. 1s)
Optymalizacja wydajności – dobre praktyki
Rekomendacje:
-
Unikaj SELECT * – pobieraj tylko niezbędne kolumny
-
Używaj
LIMIT
i paginacji dla dużych wyników -
Zmieniaj strukturę zapytań – np. zamiana
IN
naJOIN
-
Monitoruj widoki – zapytania na widokach obliczeniowych mogą być kosztowne
Narzędzia automatyczne:
-
SAP HANA Mini Checks – zestaw gotowych zapytań diagnostycznych (SAP Note 1969700)
-
Alerting Framework – wbudowany system alertów z poziomami (Info, Low, Medium, High)
Zarządzanie procesem Delta Merge
W przypadku tabel kolumnowych dane zapisywane są najpierw do delta store, a później łączone z głównym segmentem podczas delta merge.
Kiedy następuje merge?
-
Automatycznie po przekroczeniu progu
-
Ręcznie (np. po dużym INSERT)
Śledzenie:
Typy merge:
-
Auto
-
Smart (bazujący na heurystykach)
-
Hard (ręczny, wymuszony)
-
Critical (przekroczony limit)
💡 Regularne merge zmniejszają zużycie pamięci i poprawiają wydajność zapytań SELECT.
Zarządzanie wydajnością w HANA Cockpit
W HANA Cockpit znajdziesz dedykowane sekcje:
-
Memory Overview – statystyki alokacji
-
CPU Usage – wykresy i historia obciążenia
-
Expensive Statements Monitor – lista problematycznych zapytań
-
Alert Inbox – monitoring i konfiguracja alertów
Podsumowanie
Efektywne zarządzanie pamięcią i wydajnością to kluczowy element pracy administratora SAP HANA. Wysoka wydajność systemu to nie tylko wynik technologii in-memory, ale też konsekwentnego monitorowania i optymalizacji zasobów.
Monitoruj zużycie pamięci i CPU
Identyfikuj i optymalizuj kosztowne zapytania
Zarządzaj delta merge dla stabilności systemu
Korzystaj z Cockpita i Mini Checks do analizy systemowej
Brak komentarzy:
Prześlij komentarz