Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Pokaż wykorzystanie procesora Oracle dla sesji w procentach

Krótko mówiąc:nie będziesz w stanie tego zrobić za pomocą jednego zapytania, będziesz musiał napisać PL/SQL, aby zebrać przydatne dane w celu uzyskania przydatnych informacji.

Oracle dysponuje statystykami „zakumulowanego czasu”, co oznacza, że ​​silnik stale śledzi wykorzystanie. Będziesz musiał zdefiniować czas rozpoczęcia i czas zakończenia analizy.

Możesz zapytać „procesor DB” z V$SYS_TIME_MODEL

select value into t_db_cpu_i
from sys.V_$SYS_TIME_MODEL
where stat_name = 'DB CPU' ;  /* start time */ 
...
select value into t_db_cpu_f
from sys.V_$SYS_TIME_MODEL
where stat_name = 'DB CPU' ; /* end time */

Statystyki procesora ulegną zmianie, jeśli masz tylko 1 lub 8 procesorów. Musisz więc określić, ile procesorów wykorzystuje twój silnik.

Możesz zapytać „cpu_count” z V$PARAMETER, aby uzyskać tę wartość.

select value into t_cpus
from sys.v_$parameter
where name='cpu_count' ;

To całkiem proste:

Maksymalny całkowity czas będzie wynosił sekundy * liczba procesorów, więc jeśli masz tylko #1 procesor, maksymalny łączny czas wyniesie "60" , ale jeśli masz #2 procesor, maksymalny całkowity czas wyniesie "120" .. #3 procesory będzie "180" .. itd. ...

Więc bierzesz czas rozpoczęcia i czas zakończenia analizowanego okresu za pomocą sysdate:

t_start := sysdate ;
t_end := sysdate ;

A teraz obliczasz:

seconds_elapsed := (t_end - t_start)*24*60*60 ;
total_time := seconds_elapsed * t_cpus ; 
used_cpu := t_db_cpu_f - t_db_cpu_i ;
secs_cpu := seconds_elapsed/1000000 ;
avgcpu := (secs_cpu/total_time)*100 ;

I to wszystko, „avgcpu” to wartość, której szukasz.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-00942:tabela lub widok nie istnieje z szablonem Spring JDBC w Spring Boot

  2. Kopiowanie wiersza w tej samej tabeli bez konieczności wpisywania ponad 50 nazw kolumn (przy zmianie 2 kolumn)

  3. Zapytanie o liczbę zdarzeń Oracle

  4. Co muszę zmienić podczas wysyłania zapytania?

  5. Jak mogę utworzyć walidację na żywo po stronie serwera Oracle apex bez konieczności przesyłania strony?