Measure average I/O-load and CPU-usage on Oracle database instance
Short overview on peak I/O requests, transfer volume and CPU-usage for given time range.
Based on average values within AWR-cycle.
Based on average values within AWR-cycle.
SELECT /* DB-Tools Ramm average system load */
Instance_Number, MIN(Begin_Time) Start_Range, MAX(End_Time) End_Range,
MAX(Phys_Write_Total_kB_per_Sec) Max_Phys_Writes_kB_per_Sec,
MAX(Begin_Time) KEEP (DENSE_RANK LAST ORDER BY Phys_Write_Total_kB_per_Sec) Max_Write_per_Sec_BeginTime,
MAX((End_Time-Begin_Time)*1440) KEEP (DENSE_RANK LAST ORDER BY Phys_Write_Total_kB_per_Sec) Cycle_Minutes_1,
MAX(Phys_Read_Total_kB_per_Sec) Max_Phys_Read_kB_per_Sec,
MAX(Begin_Time) KEEP (DENSE_RANK LAST ORDER BY Phys_Read_Total_kB_per_Sec) Max_Read_per_Sec_BeginTime,
MAX((End_Time-Begin_Time)*1440) KEEP (DENSE_RANK LAST ORDER BY Phys_Read_Total_kB_per_Sec) Cycle_Minutes_2,
MAX(Phys_Write_IO_per_Sec) Max_Phys_Write_IO_per_Sec,
MAX(Begin_Time) KEEP (DENSE_RANK LAST ORDER BY Phys_Write_IO_per_Sec) Max_Write_IO_per_Sec_BeginTime,
MAX((End_Time-Begin_Time)*1440) KEEP (DENSE_RANK LAST ORDER BY Phys_Write_IO_per_Sec) Cycle_Minutes_3,
MAX(Phys_Read_IO_per_Sec) Max_Phys_Read_IO_per_Sec,
MAX(Begin_Time) KEEP (DENSE_RANK LAST ORDER BY Phys_Read_IO_per_Sec) Max_Read_IO_per_Sec_BeginTime,
MAX((End_Time-Begin_Time)*1440) KEEP (DENSE_RANK LAST ORDER BY Phys_Read_IO_per_Sec) Cycle_Minutes_4,
MAX(Host_CPU_Utilization_Pct) Max_Host_CPU_Utilization_Pct,
MAX(Begin_Time) KEEP (DENSE_RANK LAST ORDER BY Host_CPU_Utilization_Pct) Max_Host_CPU_Pct_BeginTime,
MAX((End_Time-Begin_Time)*1440) KEEP (DENSE_RANK LAST ORDER BY Host_CPU_Utilization_Pct) Cycle_Minutes_4,
MAX(DB_CPUs) Max_DB_CPUs,
MAX(Begin_Time) KEEP (DENSE_RANK LAST ORDER BY DB_CPUs) DB_CPUs_BeginTime,
MAX((End_Time-Begin_Time)*1440) KEEP (DENSE_RANK LAST ORDER BY DB_CPUs) Cycle_Minutes_4
FROM (
SELECT /*+ NO_MERGE LEADING(h.ash) PARALLEL(h,4) */
Instance_Number, Begin_Time, End_Time,
ROUND(SUM(CASE WHEN Metric_Name = 'Physical Write Total Bytes Per Sec' THEN Average ELSE 0 END)/1024) Phys_Write_Total_kB_per_Sec,
ROUND(SUM(CASE WHEN Metric_Name = 'Physical Read Total Bytes Per Sec' THEN Average ELSE 0 END)/1024) Phys_Read_Total_kB_per_Sec,
ROUND(SUM(CASE WHEN Metric_Name = 'Physical Write IO Requests Per Sec' THEN Average ELSE 0 END)) Phys_Write_IO_per_Sec,
ROUND(SUM(CASE WHEN Metric_Name = 'Physical Read IO Requests Per Sec' THEN Average ELSE 0 END)) Phys_Read_IO_per_Sec,
ROUND(SUM(CASE WHEN Metric_Name = 'Host CPU Utilization (%)' THEN Average ELSE 0 END)) Host_CPU_Utilization_Pct,
ROUND(SUM(CASE WHEN Metric_Name = 'CPU Usage Per Sec' THEN Average ELSE 0 END)/100,2) DB_CPUs
FROM DBA_Hist_SysMetric_Summary
WHERE Begin_Time > SYSTIMESTAMP - 7
AND Metric_Name IN ('Physical Write Total Bytes Per Sec', 'Physical Write IO Requests Per Sec', 'Physical Read Total Bytes Per Sec', 'Physical Read IO Requests Per Sec',
'Host CPU Utilization (%)', 'CPU Usage Per Sec' )
GROUP BY Instance_Number, Begin_Time, End_Time
) h
GROUP BY Instance_Number
;
Comments
Post a Comment