Skip to main content

Load Profile

The Load Profile is the first and most important section of an AWR report. It provides a high-level summary of the workload on your PostgreSQL instance during the report period, expressed as per-second and per-transaction rates.

{screenshot: awr-load-profile-section}


Metrics Displayed

MetricPer SecondPer TransactionDescription
DB TimeTotal time spent in active database sessions
DB CPUTime spent on CPU by database sessions
TransactionsCommitted transactions rate
RollbacksRolled-back transactions rate
Logical ReadsBuffer cache reads (blocks hit + blocks read)
Physical ReadsBlocks read from disk (cache misses)
Physical WritesBlocks written to disk
SQL ExecutionsTotal statement executions
Rows ProcessedTotal rows returned or affected
WAL Generated (bytes)Write-ahead log generation rate

How to Read the Load Profile

DB Time vs. DB CPU

The gap between DB Time and DB CPU represents time spent waiting (on I/O, locks, network, etc.). A large gap indicates significant wait activity — investigate the Wait Events and Top SQL sections to identify the cause.

Cache Hit Ratio (Implicit)

You can derive the buffer cache hit ratio from the Load Profile:

Cache Hit Ratio = (Logical Reads - Physical Reads) / Logical Reads × 100

A ratio below 95% for an OLTP workload warrants investigation. Increase shared_buffers or review query plans for large sequential scans.

Rollback Rate

A high Rollbacks/sec rate relative to Transactions/sec may indicate application errors, constraint violations or long-running transactions being aborted. Investigate application logs alongside this metric.


Comparing Load Profiles

The Load Profile is most useful when compared across different time periods:

  • Compare a peak hour vs. an off-peak hour for the same day
  • Compare before and after a deployment
  • Compare this week's load profile with last week's

Generate two separate AWR reports and compare the per-second rates side by side.


Next Steps