Skip to content

Oracle Initialization Parameters - Complete Reference with Tuning Guidance

Oracle initialization parameters (init.ora / SPFILE) control every aspect of database behavior — from memory allocation and session limits to optimizer strategy and recovery configuration. Proper parameter tuning is the foundation of Oracle performance management.

Memory parameters control how Oracle allocates SGA and PGA memory. These are the most impactful parameters for database performance.

ParameterDescription
SGA_TARGETAutomatic SGA Memory Management — Oracle auto-tunes SGA components
SGA_MAX_SIZEUpper limit for SGA memory allocation
PGA_AGGREGATE_TARGETAutomatic PGA memory management for sorts, hash joins, and bitmaps
PGA_AGGREGATE_LIMITHard ceiling on total PGA consumption (12c+)
MEMORY_TARGETAutomatic Memory Management — manages SGA + PGA together
MEMORY_MAX_TARGETUpper limit for AMM total memory
SHARED_POOL_SIZEMinimum shared pool size (library cache, dictionary cache)
DB_CACHE_SIZEMinimum buffer cache size for data blocks
AMM (Automatic Memory Management)
├── MEMORY_TARGET controls total memory
├── Oracle auto-tunes SGA_TARGET + PGA_AGGREGATE_TARGET
└── Best for: smaller databases, simplified management
ASMM (Automatic Shared Memory Management)
├── SGA_TARGET controls SGA components
├── PGA_AGGREGATE_TARGET set separately
└── Best for: production databases, more control
Manual Memory Management
├── Individual pools sized explicitly (SHARED_POOL_SIZE, DB_CACHE_SIZE, etc.)
├── PGA_AGGREGATE_TARGET or WORKAREA_SIZE_POLICY=MANUAL
└── Best for: specific tuning requirements, legacy compatibility

Control connection capacity and cursor management.

ParameterDescription
PROCESSESMaximum OS processes (connections) — static, requires restart
SESSIONSMaximum concurrent sessions — derived from PROCESSES
OPEN_CURSORSMaximum open cursors per session — prevents ORA-01000
SESSION_CACHED_CURSORSCached cursors per session for reduced parse overhead
SELECT resource_name, current_utilization, max_utilization,
initial_allocation, limit_value
FROM v$resource_limit
WHERE resource_name IN ('processes', 'sessions');

Control query optimization behavior and plan stability.

ParameterDescription
OPTIMIZER_MODEOptimizer goal — ALL_ROWS vs FIRST_ROWS_n
OPTIMIZER_FEATURES_ENABLELock optimizer to a specific version — critical for upgrades
CURSOR_SHARINGAuto-replace literals with binds to reduce hard parsing

Control transaction undo management and recovery area sizing.

ParameterDescription
UNDO_TABLESPACEActive undo tablespace for transaction management
UNDO_RETENTIONMinimum undo retention — prevents ORA-01555
DB_RECOVERY_FILE_DEST_SIZEFlash Recovery Area size for backups and archive logs

Foundational parameters set at database creation or upgrade time.

ParameterDescription
DB_BLOCK_SIZEBlock size — set once at creation, cannot change
COMPATIBLEVersion compatibility — the point of no return for upgrades

Quick Reference: Check All Non-Default Parameters

Section titled “Quick Reference: Check All Non-Default Parameters”
SELECT name, value, isdefault, ismodified, description
FROM v$parameter
WHERE isdefault = 'FALSE'
ORDER BY name;

Additional parameter categories being documented:

  • I/O Parameters — DB_FILE_MULTIBLOCK_READ_COUNT, DISK_ASYNCH_IO, FILESYSTEMIO_OPTIONS
  • RAC Parameters — CLUSTER_DATABASE, INSTANCE_NUMBER, THREAD
  • Security Parameters — AUDIT_TRAIL, SEC_CASE_SENSITIVE_LOGON
  • Multitenant Parameters — ENABLE_PLUGGABLE_DATABASE, MAX_PDBS
  • Network Parameters — LOCAL_LISTENER, REMOTE_LISTENER, DISPATCHERS