Skip to main content

Load Profile

The Load Profile is the first analytical section of the AWR report. It provides a high-level summary of the database workload during the report period, expressed as rates per second and per transaction.

AWR Load Prodile


How DB Time and AAS Are Calculated

PMP4PG samples data of pg_stat_activity every 10 seconds (10% sampling rate). Each sample therefore represents 10 seconds of real database activity.

DB Time (seconds) = Total ASH samples × 10
AAS = DB Time / Report Duration (seconds)

Example: If 180 ASH samples were captured over a 30-minute snapshot:

  • DB Time = 180 × 10 = 1,800 seconds (30 minutes)
  • AAS = 1,800 / 1,800 = 1.0 — on average, 1 session was active at all times

DB Time is the sum of CPU time and wait time across all active sessions during the report period.


Metric Cards

The Load Profile displays 8 metric cards:

MetricDescription
DB TimeTotal database time during the report period (CPU + Wait time across all sessions)
DB Time per SecondAverage DB Time consumed per second — equivalent to AAS
Average Active Sessions (AAS)Average number of concurrently active sessions during the period
Logical Reads/secRate of block reads served from the buffer cache
Physical Reads/secRate of block reads from disk (cache misses)
Executions/secRate of SQL statement executions
Transactions/secRate of committed and rolled-back transactions
Logical Reads/txnAverage number of buffer cache reads per transaction

Average Active Sessions (AAS) Chart

Below the metric cards, a doughnut chart visualizes the AAS relative to the available CPU capacity of the server.

  • Active Sessions — current AAS value (sessions consuming DB time)
  • Remaining Capacity — unused CPU capacity (CPU cores − AAS)

AWR AAS Chart

AAS Interpretation

AAS vs CPU CoresLoad LevelMeaning
AAS < 50% of CPU cores🟢 LowDatabase is lightly loaded — plenty of headroom
50% ≤ AAS < 80% of CPU cores🟡 ModerateNormal production load — monitor trends
AAS ≥ 80% of CPU cores🔴 HighSessions are competing for CPU — investigate Top SQL and Wait Events
AAS approaching CPU core count

When AAS approaches or exceeds the number of available CPU cores, sessions compete for CPU resources, leading to increased wait times and degraded performance. Investigate the Top SQL section for CPU-intensive queries and the Wait Events section for lock or I/O contention.


How to Read the Load Profile

DB Time vs. Duration

DB Time represents the total work done by the database, not wall-clock time. A DB Time of 3,600 seconds over a 30-minute (1,800-second) period means an AAS of 2.0 — on average, 2 sessions were always active.

Physical Reads/sec

A high Physical Reads/sec relative to Logical Reads/sec indicates a low buffer cache hit ratio — data is frequently read from disk rather than memory. Consider increasing shared_buffers or investigating queries performing large sequential scans.

Executions/sec vs. Transactions/sec

A high ratio of Executions/sec to Transactions/sec indicates many queries per transaction — typical of OLTP workloads. A low ratio may indicate long-running transactions with few statements.

Logical Reads/txn

A high Logical Reads/txn value indicates transactions reading large amounts of data. For OLTP workloads, values above a few hundred blocks per transaction warrant investigation of query plans for missing indexes.


Next Steps