Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Tampilkan penggunaan CPU Oracle untuk sesi sebagai persentase

Singkat cerita:Anda tidak akan dapat melakukannya dengan satu kueri, Anda perlu menulis PL/SQL untuk mengumpulkan data yang berguna guna mendapatkan informasi yang berguna.

Oracle memiliki statistik "waktu terakumulasi", ini berarti bahwa mesin terus melacak penggunaan. Anda harus menentukan waktu mulai dan waktu berakhir untuk analisis.

Anda dapat menanyakan 'CPU DB' dari 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 */

Statistik CPU akan terpengaruh jika Anda hanya memiliki CPU #1 atau CPU #8. Jadi, Anda harus menentukan berapa banyak CPU yang digunakan mesin Anda.

Anda dapat meminta 'cpu_count' dari V$PARAMETER untuk mendapatkan nilai ini.

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

Kemudian, ini cukup sederhana:

Total waktu maksimum adalah detik * jumlah CPU, jadi jika Anda hanya memiliki #1 CPU maka total waktu maksimum adalah "60" , tetapi jika Anda memiliki #2 CPU maka total waktu maksimum adalah "120" .. #3 CPU akan menjadi "180" .. dll. ...

Jadi, Anda mengambil waktu mulai dan waktu akhir periode yang dianalisis menggunakan sysdate:

t_start := sysdate ;
t_end := sysdate ;

Dan sekarang Anda menghitung yang berikut:

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 ;

Dan hanya itu, "avgcpu" adalah nilai yang Anda cari.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hibernasi kueri asli - kolom char(3)

  2. Melewati operator SQL ke kueri melalui Parameter iReport

  3. Perbarui pernyataan dengan gabungan dalam di Oracle

  4. Cara mendapatkan objek Koneksi saat ini di Spring JDBC

  5. Mencoba mengekspor Oracle melalui PL/SQL memberikan tanggal 0000-00-00