Lubię uzyskiwać najnowsze wykonane instrukcje w mojej bazie danych wraz ze wskaźnikami wydajności.
Jako taki, chcę wiedzieć, które instrukcje SQL najbardziej obciążają procesor / dysk.
oracle
monitoring
Sebastian Roth
źródło
źródło
Odpowiedzi:
Oto instrukcja SQL do wykonania zadania. Otwarty na proces.
Krok 1: Określ identyfikatory instalacji i identyfikatory użytkowników.
Krok 2:
Może zostać zwróconych wiele identyfikatorów ID i instancji. Zatem to użytkownik decyduje, jak wykorzystać te dane w interfejsie internetowym itp.
źródło
in
... AND (s.inst_id, s.sid) in ( (:id1, :sid1), (:id2, :sid2), ... )
Konsola Oracles Enterprise Monitor pokazuje całe bogactwo informacji o tym, które zapytania SQL zajmują maksymalny procesor, wąskie gardła, najwyższą aktywność w bazie danych, blokuje SQLs i in.
W przypadku podejścia historycznego możesz użyć raportów AWR firmy Oracle, aby wskazać obszary dotyczące ciebie.
źródło
Możesz również użyć
V$SQL
, istnieje kilka interesujących kolumnRUNTIME_MEM, EXECUTIONS, DISK_READS, SORTS, ELAPSED_TIME, SQL_FULLTEXT
itp.Dałoby to 10 najważniejszych instrukcji według odczytu dysku (uwaga - jest to kumulacja dla wszystkich wykonań):
Jeśli instrukcja jest nadal dostępna
V$SQL_PLAN
, możesz uzyskać rzeczywisty plan wyjaśniania dla zapytania:Lubię też używać,
V$SQL_PLAN
ponieważ zawiera dobre informacje. Jeślistatistics_level=ALL
możesz użyćV$SQL_PLAN_STATISTICS
.źródło
W przypadku ostatniego kodu SQL:
Dla historii:
źródło