📄 hdrmon.sql
字号:
set feedback off
set verify off
set serveroutput on
declare
t_number1 number :=0;
t_number2 number :=0;
t_number3 number :=0;
t_number4 number :=0;
t_number5 number :=0;
t_number6 number :=0;
t_number7 number :=0;
t_number8 number :=0;
t_number9 number :=0;
t_varchar1 varchar2(200);
t_varchar2 varchar2(200);
cursor c_sga is
select replace(replace(name,'Size'),'Database','DB') name
,round(value/1024/1024,2) value
from sys.v_$sga;
begin
dbms_output.enable(100000);
-- total sessions
select name into t_varchar1 from v$database;
select count(*) into t_number2 from v$session;
select count(*) into t_number3 from v$session where type = 'BACKGROUND';
select count(*) into t_number4 from v$session where type = 'USER';
select count(*) into t_number5 from v$session where type = 'USER' and status = 'ACTIVE';
select count(*) into t_number6 from v$session where type = 'USER' and status = 'INACTIVE';
dbms_output.put_line(lower(user)||'@'||t_varchar1|| '=>'||
t_number2||' processes: '||
t_number3||' background,'||
t_number4||' user('||
t_number5||' active,'||
t_number6||' inactive)');
-- SGA details
select round(sum(value)/1024/1024,2) into t_number1 from v$sga;
t_varchar1 := 'SGA:'||t_number1||'Mb (';
for r_sga in c_sga
loop
t_varchar1 := t_varchar1||','||rtrim(lower(replace(r_sga.name,' ')))||':'||
ltrim(to_char(r_sga.value,'9990.00'));
end loop;
t_varchar1 := replace(t_varchar1,'(,','(')||')';
dbms_output.put_line(t_varchar1);
-- Disk space
select round(sum(bytes/1024/1024),2) into t_number1 from dba_data_files;
select round(sum(bytes/1024/1024),2) into t_number2 from dba_free_space;
t_number3:=t_number1 - t_number2;
t_number4:=round(t_number3/t_number1 ,4) * 100;
dbms_output.put_line('Disk Total:' ||t_number1||'Mb'||
' (free:' ||t_number2||'Mb'||
' used:' ||t_number3||'Mb'||
' percent used:' ||t_number4||'%)');
-- Hitratios
select round((sum(decode(name, 'consistent gets',value, 0)) +
sum(decode(name, 'db block gets',value, 0)) -
sum(decode(name, 'physical reads',value, 0))) /
(sum(decode(name, 'consistent gets',value, 0)) +
sum(decode(name, 'db block gets',value, 0))) * 100,2) getal
into t_number1
from v$sysstat;
select round((sum(PINHITS) / sum(PINS)) * 100,2)
into t_number2
from v$librarycache;
select round((sum(PINS) / (sum(PINS) + sum(RELOADS))) * 100,2)
into t_number3
from v$librarycache;
select round((1 - (sum(GETMISSES) / sum(GETS))) * 100,2)
into t_number4
from v$rowcache;
dbms_output.put_line('Hits Buffer:' ||t_number1||'%'||
' Library:' ||t_number2||'%'||
' Library misses:' ||t_number3||'%'||
' Data dictionary:' ||t_number4||'%');
dbms_output.put_line(chr(27));
end;
/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -