Więcej mocy z bazy

Optymalizacja, monitorowanie, testowanie - przegląd narzędzi usprawniających działanie baz danych

Optymalizacja, monitorowanie, testowanie - przegląd narzędzi usprawniających działanie baz danych

Współczesne algorytmy zapytań do są już na tyle wyrafinowane, że próba ręcznego sterowania sposobem wykonania kwerendy zamiast zwiększać, zmniejsza wydajność aplikacji. Z drugiej strony, jest tak bogatym językiem, że każdą kwerendę można zbudować na wiele sposobów. Aby znaleźć optymalne rozwiązanie, należy przeprowadzić precyzyjną analizę wpływu każdej, nawet najmniejszej zmiany algorytmu na cały system bazodanowy. Do tego celu służą liczne narzędzia, udostępniane przez firmy produkujące bazy danych, a także przez niezależnych dostawców oprogramowania.

Firmowy monitoring

Producenci baz danych prześcigają się w tworzeniu nowych algorytmów optymalizujących wyrażenia SQL. Większość współczesnych baz ma wbudowane narzędzia do analizy wyrażeń, monitorowania stanu serwera i wykrywania najbardziej "pracochłonnych" kwerend.

IBM DB2 Preformance Monitor analizuje wydajność aplikacji. Na bieżąco wykrywa wąskie gardła i ostrzega przed zwiększonym ruchem w systemie.

Microsoft oferuje z SQL Server 2000 dwa narzędzia tego typu. SQL Profiler rejestruje wybrane zdarzenia zachodzące w bazie danych, co pozwala później dokładnie prześledzić wykonywane zapytania. Specjalny kreator natomiast automatycznie proponuje utworzenie indeksów czy statystyk, które przyspieszą wykonywanie konkretnego "zestawu" instrukcji. Oprócz tego, przy użyciu standardowego narzędzia do pisania wyrażeń T-SQL, można obejrzeć wygenerowany plan wykonania instrukcji i ewentualnie przeformułować spowalniające pracę fragmenty programu.

Oracle Tuning Pack 9, podobnie jak SQL Server, zawiera narzędzia do automatycznego generowania indeksów, a także ułatwiające pisanie skomplikowanych wyrażeń SQL. Wchodzący w skład tego pakietu SQL Analyzer umożliwia wstępne określenie profilu kwerendy, np. czy będzie to system transakcyjny OLTP czy hurtownia danych. Moduł automatyzuje także wstawianie tzw. podpowiedzi do kwerendy SQL, które ułatwiają układanie jej planu.

Niezależny zestaw

Monitorowanie bazy danych umożliwia wpływanie na jej wydajność. Firma SQL Power Tools opracowała zestaw narzędzi do monitorowania, które rozwiązują problem wolniejszego działania systemu. Analizatory SQL Power Tools działają zwykle w ten sposób, że na serwerze bazy danych dodatkowo rejestrowane są kwerendy. Firma opracowała metodę "podsłuchiwania" pakietów krążących między użytkownikiem a serwerem bazodanowym (rodzaj sniffera).

Narzędzia nie zawsze potrzebne

Narzędzia optymalizujące pozwalają przyspieszyć działanie aplikacji i baz danych oraz lepiej wykorzystywać zasoby sprzętowe. Nie należy jednak liczyć, że przeprowadzona przy ich użyciu optymalizacja spowoduje gwałtowny wzrost wydajności czy skalowalności systemu.

Na pewno mniej doświadczonym programistom opisane narzędzia pozwolą wyeliminować oczywiste błędy poczynione w konstrukcji baz danych. Jednak już średnio zaawansowany programista SQL doceni raczej wygodne narzędzie do edycji kwerend czy testowania procedur wbudowanych niż "automatyczne" generatory optymalnych zapytań.

Warto przy tej okazji przypomnieć sobie dosyć oczywiste zasady dotyczące konstrukcji sprzętu, na którym mają działać serwery bazodanowe. Czasami bardziej racjonalne jest przeniesienie bazy danych na oddzielny lub szybszy dysk czy rozdzielenie pliku log, niż poświęcanie kilkadziesięciu godzin na optymalizację SQL, która zwiększy wydajność aplikacji o kilka, najwyżej kilkanaście procent.

Wchodzący w skład zestawu Zero Impact Sql Monitor jest uniwersalnym narzędziem do pomiaru aktywności użytkowników. Rejestrowany jest czas reakcji serwera, opóźnienia w sieci, liczba zwracanych wierszy i wyrażeń SQL itp. Zero Impact Service Level Monitor dodatkowo definiuje "metrykę" określającą poziom dostępności systemu. Administrator jest ostrzegany o spodziewanym spadku wydajności.

Zero Impact Top N Sql Analyzer to wyrafinowany moduł, który analizuje częstotliwość zapytań określonego typu kierowanych do serwera bazodanowego i wskazuje, które fragmenty aplikacji wymagają optymalizacji. Narzędzie gromadzi informacje dotyczące określonych grup użytkowników, np. jakie zapytania do systemu kierują księgowi, a jakie analitycy.


TOP 200