Optymalizacja
Pomagamy zaoszczędzić na kosztach sprzętu, licencji i chmury.
Co to jest optymalizacja
Optymalizacja baz danych, czyli zwiększenie wydajności polega na przyspieszeniu procesów (zapytań SQL), jakie wykonywane są w bazie.
Procesy trwają znacznie krócej, co przekłada się na zmniejszenie obciążenie procesorów. A to z kolei oznacza mniejsze zapotrzebowanie na sprzęt i licencje, bez utraty wydajności i stabilności.
Zazwyczaj im dłużej trwa dany proces, tym większe prawdopodobieństwo, że uda się go przyspieszyć i tym większy efekt można uzyskać. Podatne na optymalizację są np. raporty oraz długie procesy batch-owe.
Dodatkowym efektem optymalizacji jest zwiększenie stabilności działania aplikacji, zwłaszcza trójwarstwowej. Dzięki optymalizacji procesy aplikacyjne wykonują się szybciej, zmniejsza się obciążenie serwerów aplikacyjnych, zmniejsza się ilość aktywnych sesji w samych serwerach, co znacząco poprawia ich stabilność.
Dzięki optymalizacji można nie tylko skrócić, ale wręcz w ogóle umożliwić wykonanie pewnych procesów.
Przykład optymalizacji bazy danych
Proces upgrad-u aplikacji u jednego z największych polskich operatorów telco
Czas upgrade-u samej bazy (na podstawie czasów upgrade-u na bazie testowej) oryginalnymi skryptami producenta aplikacji szacowany był na ok. 30 dni. Dzięki optymalizacji udało się go skrócić do 2h.
Jak przebiega optymalizacja
W trakcie optymalizacji monitorujemy parametry pracy baz danych, konfigurację pamięci, zapytania SQL kierowane do bazy, istniejące indeksy pod kątem ich wykorzystania przez aplikacje, sposoby przechowywania danych w bazie, współczynniki mówiące o pracy bazy (np. współczynnik trafienia w bufor, współczynnik odczytu i inne), fragmentację tabel i indeksów oraz konfigurację elementów specyficznych dla danego silnika bazodanowego.
Na podstawie zebranych danych identyfikujemy wąskie gardła i przygotowujemy rozwiązania znalezionych problemów. Rozwiązania testujemy ja na bazie testowej/developerskiej, a następnie implementujemy je na bazie produkcyjnej z udziałem działu IT klienta.
Dużą zaletą optymalizacji jest szybki efekt. Pierwsze efekty zwiększenia wydajności widać jest zazwyczaj po kilku dniach od rozpoczęcia optymalizacji. Największy wzrost wydajności odczuwalny jest najczęściej w pierwszych dwóch tygodniach. Zazwyczaj po takim okresie znikają lub znacznie zmniejszają się ewentualne problemy ze stabilnością aplikacji.
Bezpieczeństwo
Nasza metodyka bazuje na obserwacji naturalnego obciążenia bazy danych generowanego przez aplikacje. Dlatego też niezbędny jest nam dostęp do bazy produkcyjnej, ale wyłącznie dostęp typu read-only.
Monitorujemy pracę bazy danych korzystając z jej wewnętrznych tabel i widoków, tzw. słownika danych.
Podczas optymalizacji nie zmieniamy kodu aplikacji, skupiamy się na wykorzystaniu wbudowanych, standardowych mechanizmów przyspieszania jakie oferuje dany silnik bazodanowy (zmiana parametrów inicjalizacyjnych, zmiana przydziału poszczególnych obszarów pamięci, defragmentacja, indeksy, zmaterializowane widoki itp.).
Optymalizacja jest zupełnie bezpieczna. Nie zmienia kodu aplikacji, nie wpływa na dane, wdrożone zmiany mogą być wycofane.
Na specjalne życzenie Klienta (jeżeli ma on możliwość modyfikacji kodu aplikacji) możemy dodatkowo dokonać optymalizacji lub wręcz przebudowy zapytań SQL oraz kodu PL/SQL, T-SQL lub PL/pgSQL.
Zmniejszamy koszty projektów
Dzięki optymalizacji można znacząco przyspieszyć działanie aplikacji. Szybciej działająca aplikacja, to większa produktywność pracowników, więcej zadowolonych klientów, szybki dostęp do danych, na podstawie których podejmowane są strategiczne decyzje biznesowe.
Innym efektem optymalizacji są oszczędności na sprzęcie i licencjach.
Szybciej działające zapytania SQL oznaczają mniejsze obciążenie procesorów.
Oszczędności na sprzęcie
Na tym samym serwerze, bez straty na wydajności, może działać więcej baz lub też dana baza potrzebuje mniejszej liczby core/procesorów. Można zastosować znacznie serwer z mniejszą ilością core, a więc zdecydowanie tańszy.
Oszczędności na licencjach
Licencjonowanie Oracle i MSSQL najczęściej zależy od ilości core/procesorów (w zależności od rodzaju licencji).
Przy wzroście wydajności rzędu 100% (co nie jest rzadkością) można zaoszczędzić 50% na kosztach licencji.
Przykład: w przypadku licencji Oracle EE na 32 core zwiększenie wydajności o 100% może dać oszczędność rzędu 2,35 mln PLN* na licencjach plus oszczędności na sprzęcie.
(*kwoty liczone według cen katalogowych Oracle, bez upustów)
Gwarancja
- Przy optymalizacji zawsze określamy gwarantowany, mierzalny wzrost wydajności
- Płacisz za efekt, a nie za ilość wykonanych prac
- W przypadku, gdyby nie udało nam się osiągnąć gwarantowanego wzrostu wydajności, nie płacisz za usługę
Czy dotyczy to moich systemów?
Na ponad 300 przeprowadzonych przez nas audytów wydajności jedynie w dwóch przypadkach optymalizacja nie miała sensu biznesowego – uzyskany wzrost wydajności byłby nieadekwatny do kosztów optymalizacji.
We wszystkich pozostałych przypadkach optymalizacja mogła przynieść wymierne korzyści – zmniejszenie kosztów sprzętu i licencji lub znaczne przyspieszenie działania aplikacji.
Problem ten dotyczy wszystkich systemów, dużych, średnich i małych, ERP, MIS, CRM, BI, GIS, systemów bilingowych itp.
Dotyczy także wszystkich silników bazodanowych – Oracle, MSSQL, PostgreSQL, MySQL itd.
W olbrzymiej większości systemów opartych o bazach danych możliwe jest zwiększenie wydajności o co najmniej 50%.
Zachęcamy do samodzielnego sprawdzenia możliwości optymalizacji Waszych baz danych – przygotowaliśmy program do badania wydajności baz danych Oracle.
Program jest bezpłatny, można go pobrać po zarejestrowaniu się na stronie www.commit-it.pl/perfcheck
Zalety optymalizacji
- Duży wzrost wydajności (zazwyczaj od kilkudziesięciu do kilkuset procent)
- Duże oszczędności na sprzęcie i licencjach
- Niski koszt
- Szybki efekt (pierwsze efekty widoczne już po kilku dniach, największy wzrost wydajności notujemy w ciągu pierwszych dwóch tygodni)
- Prace nie powodują przestojów systemu
- Największy wzrost wydajności występuje dla procesów najdłużej trwających