konto usunięte

Temat: Pytanie - jak prześledzić sesję Oracle

Witam
Mam pytanie, jak w temacie. Chodzi mi o to, że mam sesję oraclową (jej numer) i chciałbym zrzucić gdzieś do pliku, na ekran lub gdziekolwiek indziej wszystkie zapytania jakie były wykonywane w ramach tej konkretnej sesji. Nigdy nie potrzebowałem tego robić. Czy są jakieś proste sposoby/narzędzia, żeby coś takiego wykonać?
Potrzebuję takiego zrzutu, żeby dokładnie dowiedzieć się, w jaki sposób zapytanie, które jest uruchamiane z poziomu serwera aplikacyjnego dociera do bazy danych i czy serwer aplikacyjny nie dorzuca od siebie dodatkowych rzeczy, a jeśli tak to jakie.
Będę wdzięczny za pomoc.

konto usunięte

Temat: Pytanie - jak prześledzić sesję Oracle

execute dbms_monitor.session_trace_enable(<sid>,<serial#>);

a pozniej odpalasz TKPROF i konwertujesz do postaci bardziej zjadliwej.

konto usunięte

Temat: Pytanie - jak prześledzić sesję Oracle

A wartości bind variables też to zrzuca?

konto usunięte

Temat: Pytanie - jak prześledzić sesję Oracle

Adam Michalski:
A wartości bind variables też to zrzuca?

Wartosci "bind variables" mozesz wyczaic z v$sql_bind_capture
szukajac value_string po unikalnym sql_id

A tak do powazniejszego sledzenia sesji to uzywam

1)

SQL> alter session set statistics_level=ALL;
SQL> alter session set max_dump_file_size=unlimited;
SQL> alter session set tracefile_identifier='SQLPLUS';
SQL> alter session set events = '10046 trace name context forever, level 12 : 10053 trace name context forever, level 1';

--- sql i inne cuda

SQL> alter session set events = '10046 trace name context off : 10053 trace name context off ';
exit;

albo "artylerii ciezkiej" w postaci pakietu SQLTXPLAIN
(metalink ID 215187.1)

To cudo rozklada kazda operacja na czynniki pierwsze.Bartosz Zieliński edytował(a) ten post dnia 18.01.10 o godzinie 16:27
Piotr Czeczko

Piotr Czeczko Technical Director

Temat: Pytanie - jak prześledzić sesję Oracle

a rozmyslilem sie ...Piotr Czeczko edytował(a) ten post dnia 18.01.10 o godzinie 15:50

konto usunięte

Temat: Pytanie - jak prześledzić sesję Oracle

Wielkie dzięki Bartosz za informację.
O to mi chodziło.
Pozdrawiam.
Szymon K.

Szymon K. Oracle DBA

Temat: Pytanie - jak prześledzić sesję Oracle

Bartosz Zieliński:
Adam Michalski:
A wartości bind variables też to zrzuca?

Wartosci "bind variables" mozesz wyczaic z v$sql_bind_capture
szukajac value_string po unikalnym sql_id (...)


Hmm jeśli chodzi o bindowanie to dbms_monitor też potrafi zrzucić. Wystarczy wywołać SESSION_TRACE_ENABLE z większą liczbą argumentów ;)

DBMS_MONITOR.SESSION_TRACE_ENABLE(
session_id IN BINARY_INTEGER DEFAULT NULL,
serial_num IN BINARY_INTEGER DEFAULT NULL,
waits IN BOOLEAN DEFAULT TRUE,
binds IN BOOLEAN DEFAULT FALSE)
Kamil Stawiarski

Kamil Stawiarski Oracle Certified
Master | Oracle ACE

Temat: Pytanie - jak prześledzić sesję Oracle

DBMS_MONITOR.SESSION_TRACE_ENABLE(
session_id IN BINARY_INTEGER DEFAULT NULL,
serial_num IN BINARY_INTEGER DEFAULT NULL,
waits IN BOOLEAN DEFAULT TRUE,
binds IN BOOLEAN DEFAULT FALSE)

Wydaje mi się, że DBMS_MONITOR jest tylko w wersji enterprise ale głowy za to nie dam.
W każdym razie można też użyć DBMS_SUPPORT (instalacja: @?/rdbms/admin/dbmssupp.sql)

Robi to samo praktycznie co "alter session set events = '10046 trace name context forever, level 12" tylko, że potraf to zrobić dla obcej sesji.

«

RDS

|

CPU i PSU

»


Wyślij zaproszenie do