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

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