Home / OCI

OCIHow-toIntermediate

Optimization: Autonomous Database cost - ECPU sizing, auto scaling, stop/start and elastic pools

Autonomous Database bills compute per ECPU hour and storage per GB, so idle and oversized databases cost real money. Right-size base ECPUs from usage, let compute auto scaling cover peaks, stop non-production databases out of hours, consolidate small databases into elastic pools and pick the right licence model.

Deepak Bhardwaj3 min read

Applies toAutonomous Database Serverless (ATP, ADW, JSON, APEX workload types) on ECPU billing, compute and storage auto scaling, elastic resource pools

How it's billed (simplified)

compute = ECPU-hours actually allocated (base + auto-scaled usage), while the database is running
storage = provisioned (or used, for some workload types) storage per month

Stopped databases don't bill compute, but storage keeps billing. Check the current pricing model for your workload type and licence option.

1. Measure

From the ADB metrics (namespace oci_autonomous_database) over 30 days: CpuUtilization, ECPUsAllocated (or OCPU equivalents), Sessions, StorageUtilization, and peak times. Performance Hub shows which SQL uses the CPU (see the "Autonomous Database is slow" post).

Pattern Action
CPU low, base ECPUs high Lower the base ECPU count
Short peaks above base Enable compute auto scaling instead of a high base
Used only during office hours Schedule stop/start
Many small databases with low use Elastic pool

2. Base ECPUs + auto scaling

oci db autonomous-database update --autonomous-database-id $ADB \
  --compute-count 4 --is-auto-scaling-enabled true

With auto scaling, the database can use up to three times the base ECPUs when needed and you pay for what's used. A lower base with auto scaling usually costs less than a base sized for the peak. Watch that peak usage doesn't regularly exceed the 3× ceiling.

Storage auto scaling (--is-auto-scaling-for-storage-enabled true) avoids over-provisioning storage "just in case" and prevents full-storage outages.

3. Stop non-production out of hours

oci db autonomous-database stop  --autonomous-database-id $ADB
oci db autonomous-database start --autonomous-database-id $ADB

Automate with OCI Resource Scheduler or a scheduled Function (see the non-production scheduling post). Agree with users that dev/test databases are unavailable at night.

4. Elastic resource pools

An elastic pool lets many Autonomous Databases share a pool of ECPUs, billed on the pool's actual aggregated usage, which is useful for many small databases (SaaS tenants, departmental apps) with uneven load. The pool leader sets the pool size and members join it. Check the minimum pool size and supported workload types before planning.

5. Licence model

Option When
License Included No existing Oracle Database licences to apply
Bring Your Own License (BYOL) Eligible existing licences. Lower ECPU price; check edition and licence rules

Changing licence type is an update on the database. Confirm entitlement with your licensing owner first.

6. Developer and free options

  • Free tier Always Free databases for learning and small tools (with fixed limits).
  • Developer databases for development and testing, with fixed small sizing and no production SLA.

Use them for sandboxes instead of full-price instances.

7. Other cost items

  • Long backup retention and long-term backups: set retention to what's required.
  • Autonomous Data Guard standby: cost depends on the configuration (local vs cross-region). Keep it for databases that need it.
  • Refreshable clones for reporting: often cheaper than scaling the primary for reports.

Tip

Fix the top SQL before buying ECPUs. One missing index or a runaway report can double average ECPU use, and Autonomous Database bills for it every hour.

Checklist

  • 30 days of ECPU and CPU usage reviewed
  • Base ECPUs lowered with auto scaling on
  • Storage auto scaling on
  • Non-production stop/start scheduled
  • Elastic pool for many small databases
  • Licence model confirmed; free/developer for sandboxes