Zero wąskich gardeł

Zero Impact SQL Monitor, pakiet firmy SQL Power Tools, jest zbiorem narzędzi, umożliwiających w sposób niemal nieodczuwalny dla użytkownika monitorowanie pracy serwera bazy danych.

Zero Impact SQL Monitor, pakiet firmy SQL Power Tools, jest zbiorem narzędzi, umożliwiających w sposób niemal nieodczuwalny dla użytkownika monitorowanie pracy serwera bazy danych.

Podczas optymalizacji aplikacji bazodanowej trudno jest wykryć, które z elementów programu (jakie kwerendy, które z operacji na kursorze) w największym stopniu spowolniają system. Podczas tworzenia aplikacji zespół programistów może korzystać ze specjalistycznych narzędzi, które dla wskazanej kwerendy znajdą najbardziej optymalną postać. Jednak optymalizacja jednostkowych zapytań niekoniecznie oznacza, że wzrośnie wydajność całej aplikacji - większość wąskich gardeł wynika albo z błędnych założeń projektu, albo na skutek złej współpracy poszczególnych elementów (w tym kwerend SQL). Od użytkownika programiści zwykle usłyszą: "Jeśli wybiorę tę opcję, to komputer będzie długo myślał".

Ciężkie monitory

Aby wykryć wąskie gardła, by zoptymalizować aplikację, wskazana byłaby możliwość podejrzenia czasu wykonywania poszczególnych operacji na serwerze bazodanowym podczas normalnej pracy. Każdy producent motorów bazy danych dostarcza narzędzia do monitoringu pracy serwera i podglądania wykonywanych kwerend. Wszystkie mają wspólną cechę - monitorują tak dokładnie działanie serwera, że spowalniają pracę aplikacji. Rzadko więc programiści decydują się na testowanie aplikacji na serwerze produkcyjnym, choć to bardzo ułatwiłoby ich dostrajanie.

Łapanka kodu

Zero Impact SQL Monitor jest zbiorem narzędzi pozwalających w sposób niemal niedostrzegalny dla użytkownika monitorować pracę serwera bazodanowego (współpracuje z DB2, MS SQL, Oracle i Sybase). Składa się z dwóch części: sniffera (programu przechwytującego ruch pakietów w sieci) i aplikacji służących do analizy przechwyconych informacji.

Sniffer może być uruchomiony na dowolnym komputerze znajdującym się w tej samej podsieci co serwer bazodanowy (Zero Impact może podglądać transmisję TCP/IP, Token Ring, FDDI, DECnet; nie obsługuje named pipes). Przechwycone informacje zapisuje w plikach na dysku komputera, na którym został zainstalowany.

Drugą częścią pakietu jest aplikacja, która pozwala bez problemu analizować zarejestrowane przez sniffera informacje i zarządzać działaniem monitora. Monitor ma ok. 120 opcji, umożliwiających określenie cech rejestrowanych operacji na serwerze bazodanowym. Rejestrowanie można ograniczyć np. do wybranej grupy użytkowników bądź operacji, które trwają odpowiednio długo.

Zero Impact Monitor może rejestrować: sumaryczny czas odpowiedzi na żądanie użytkownika, czas obliczeń na serwerze czy nawet czas, który jest potrzebny, by serwer zwrócił kolejny wiersz z kursora otwartego po stronie serwera!

Przejrzeć SQL

Razem z Zero Impact SQL Monitor można kupić dodatkowe narzędzie Desktop Showplan Analyzer (cena ok. 1200 USD). To pakiet, który korzysta z tego, że monitor nie tylko rejestruje czas poszczególnych operacji, ale także pozwala podejrzeć, jak wyrażenie SQL rozbijane jest na podoperacje na serwerze bazodanowym.

Analiza odbywa się na dwóch poziomach. Na pierwszym poziomie "sprzętowym" analizowane są wszystkie operacje na systemie I/O (przeglądanie tabel, korzystanie z indeksów itp.). Drugi poziom "logiczny" pokazuje sposób optymalizacji danego wyrażenia SQL, a także prezentuje drzewo wywołań, w którym można zobaczyć, że wykonanie aktualizacji tabeli spowodowało wyzwolenie triggera, który z kolei wywołał procedurę przechowywaną, która w bardzo nieefektywny sposób przegląda inną tabelę. Od użytkownika programista zapewne otrzyma informację, że "wolno się zapisuje". Zero Impact Monitor i Desktop Showplan Analyzer pozwalają prześledzić, która operacja jest odpowiedzialna za spowolnienie systemu.

Desktop Showplan Analyzer, oprócz wykonywania analizy, podpowiada, jak dane wyrażenie (w odniesieniu do kontekstu operacji) może być poprawione. Jest on dostępny dla Microsoft SQL Server i baz danych Sybase.

Na bieżąco i z opóźnieniem

Zero Impact Monitor może pracować jako analizator real-time lub jako analizator offline, gdzie analiza opiera się na zarejestrowanych logach.

Przy pracy real-time, oprócz możliwości filtrowania operacji, można także definiować "ostrzeżenia", które powstają w momencie zajścia określonego zdarzenia (np. gdy jest wywoływana procedura przechowywana o danej nazwie lub gdy czas połączenia z bazą przekroczył wartość maksymalną). Po zgłoszeniu "ostrzeżenia" monitor może np. rozpocząć dokładną rejestrację krążących pakietów.

Interesującą funkcją Zero Impact SQL Monitor jest podglądanie zawartości transakcji w trakcie jej wykonywania. Bardzo ułatwia to analizę zagnieżdżonych transakcji, szczególnie w poszukiwaniu na którym poziomie zagnieżdżenia następuje wycofanie całej operacji.

Projekt pod lupą

Zero Impact SQL Monitor doskonale nadaje się jako narzędzie do niezależnej oceny projektu. Jego uruchomienie w żaden sposób nie wpływa na działanie aplikacji, a konsultant może podejrzeć pracę systemu.

Jak podaje producent, firma SQL Power Tools, cena Impact SQL Monitor jest zbliżona do ceny kompilatora C++.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200