sql >> Databáze >  >> RDS >> Oracle

Zobrazit využití procesoru Oracle pro relace v procentech

Stručně řečeno:nebudete to moci udělat s jediným dotazem, budete muset napsat PL/SQL, abyste shromáždili užitečná data, abyste získali užitečné informace.

Oracle má statistiky „akumulovaného času“, což znamená, že motor neustále sleduje používání. Budete muset definovat čas zahájení a čas ukončení analýzy.

Můžete se dotazovat na 'DB CPU' 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 */

Statistiky CPU budou ovlivněny, pokud máte pouze #1 CPU nebo #8 CPU. Takže budete muset určit, kolik CPU váš engine používá.

Tuto hodnotu můžete získat dotazem 'cpu_count' z V$PARAMETER.

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

Pak je to docela jednoduché:

Maximální celkový čas bude sekund * počet CPU, takže pokud máte pouze #1 CPU, pak maximální celkový čas bude "60", ale pokud máte #2 CPU, pak maximální celkový čas bude "120" .. #3 CPU bude "180" .. atd. ...

Takže vezmete čas začátku a konce analyzovaného období pomocí sysdate:

t_start := sysdate ;
t_end := sysdate ;

A nyní vypočítejte následující:

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 ;

A je to, "avgcpu" je hodnota, kterou hledáte.




  1. Exportujte databázi mysql / tabulky mysql ve formátu json pomocí příkazového řádku NEBO PHP

  2. Použití připravených příkazů s mysql v pythonu

  3. Jak vybrat první a poslední datový řádek z výsledku mysql?

  4. vyberte souřadnice u jiných tabulek