| Śledzenie zapytań - TKPROF |
Często w celu poprawiania wydajności aplikacji analizuje się jakie zapytania SQL są generowane w systemie i jak one obciążają system. Dokonuje się tego poprzez włączenie monitorowania instancji, czy tez konkretnej sesji. Śledzenie powoduje zbieranie informacji o liczbie parsowań, wykonań i pobrań.
Ze śledzeniem zapytań SQL związane są następujące parametry instancji:
TIMED_STATISTICS : jeśli ten parametr ustawimy na TRUE w danych statystycznych znajda się statystyki czasowe. MAX_DUMP_FILE_SIZE : parametr określający maksymalna długość pliku śladu. USER_DUMP_DEST : parametr określający położenie plików śladu. Domyślnie jest położenie zrzutów systemu operacyjnego.
Włączenie śledzenia bieżącej sesji odbywa się poprzez polecenie: ALTER SESSION SET SQL_TRACE = TRUE; lub poprzez procedurę DBMS_SESSION.SET_SQL_TRACE.
Aby włączyć śledzenie sesji innej niż bieżąca należy znać informacje o tej zewnętrznej sesji. Mając nazwę użytkownika tej zewnętrznej sesji informacje te możemy pobrać za pomocą polecenia:
SELECT sid, serial#, osuser FROM v$session WHERE osuser = 'scott';
Teraz mając te dane możemy włączyć lub wyłączyć śledzenie dla tej sesji za pomocą polecenia:
EXECUTE DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION( sid, serial#, TRUE );
Dwa pierwsze parametry są informacjami pobranymi z poprzedniego zapytania, trzeci parametr przyjmuje wartości TRUE lub FALSE i określa, czy włączamy,czy wyłączamy tą sesje.
W przypadku włączania śledzenia na poziomie całej instancji należy parametr konfiguracyjny SQL_TRACE ustawić na TRUE. Wartością domyślną jest tutaj FALSE. Włączenie śledzenia dla całej instancji powoduje dość duże obciążenie systemu dlatego raczej zaleca się stosowanie śledzenia sesji, a śledzenie całej instancji stosować w wyjątkowych sytuacjach.
Do zapisu danych ze śledzenia w postaci zrozumiałej dla człowieka służy polecenie TKPROF. Składnia tego polecenia ma postać:
TKPROF infile outfile [parametry]
gdzie:
infile : plik wygenerowany w trakcie śledzenia outfile : nazwa pliku wynikowego zawierającego raport śledzenia.
Dla każdego zapytania znajdującego się w raporcie przedstawione są następujące informacje:
count : liczba wywołań procedur OCI (procedury pozwalające na uzyskanie dostępu do bazy) CPU : czas CPU wykonania w sekundach elapsed : czas oczekiwania na rezultat zapytania w sekundach disk : liczba fizycznych odczytów z dysku query : liczba odczytów bloków utrzymanych w trybie spójnym (z wykorzystaniem segmentu wycofania) current : liczba odczytów bloków utrzymanych w trybie bieżącym (bez wykorzystania segmentu wycofania) rows : liczba przetworzonych rekordów podczas pobierania lub wykonywania.
Powrót
|