C/C++ / CGI / Sieć Novell / PHP / Java / SQL / Oracle / WebSphere MQ / WebSphere Message Broker / JavaScript / Humor / IT Quiz

Ś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


  Autorem serwisu jest Marcin Kasiński
Wszelkie prawa zastrzeżone. All rights reserved.
powered by technology... linux eclipse java php