Understanding CELL_OFFLOAD Parameters in Oracle Exadata

Oracle Exadata introduces special initialization parameters that allow SQL operations, query plans, and even decryption to be offloaded from the database servers to the Exadata Storage Servers. This offloading improves performance, reduces CPU usage, and leverages Exadata’s intelligent storage capabilities.

This article explains the three key parameters: CELL_OFFLOAD_PROCESSING, CELL_OFFLOAD_PLAN_DISPLAY, and CELL_OFFLOAD_DECRYPTION.

1. CELL_OFFLOAD_PROCESSING

The CELL_OFFLOAD_PROCESSING parameter allows SQL processing to be offloaded to the Oracle Exadata Storage Server. You can change this setting dynamically using the SQL ALTER SYSTEM or ALTER SESSION commands.

SQL> ALTER SESSION SET CELL_OFFLOAD_PROCESSING = TRUE;

To disable CELL_OFFLOAD_PROCESSING for a SQL command:

SELECT /*+ OPT_PARAM('cell_offload_processing' 'false') */ COUNT(*) FROM EMPLOYEES;

To enable CELL_OFFLOAD_PROCESSING for a SQL command:

SELECT /*+ OPT_PARAM('cell_offload_processing' 'true') */ COUNT(*) FROM EMPLOYEES;

Note: Even when disabled, Exadata storage is still faster than conventional storage due to its scale-out architecture, RDMA fabric, and tight database integration.

2. CELL_OFFLOAD_PLAN_DISPLAY

Controls whether the SQL EXPLAIN PLAN shows predicates that can be offloaded to Exadata storage.

Values:

  • AUTO → Shows storage predicates only if Exadata cells are present. (Default)
  • ALWAYS → Always shows storage predicates, even if Exadata is not present. Useful for migration planning.
  • NEVER → Never shows storage predicates.

Command set at session level:

ALTER SESSION SET cell_offload_plan_display = ALWAYS;

3. CELL_OFFLOAD_DECRYPTION

The CELL_OFFLOAD_DECRYPTION parameter allows Oracle Exadata Storage Servers to handle decryption. This applies to encrypted tablespaces and columns.

Default: TRUE (decryption offloaded).

Behavior:

  • TRUE → Decryption handled by storage cells.
  • FALSE → Database server performs decryption.

Disable decryption offload:

ALTER SYSTEM SET CELL_OFFLOAD_DECRYPTION = FALSE;

Best Practices

  • Keep CELL_OFFLOAD_PROCESSING enabled (TRUE) to maximize Exadata’s performance benefits.
  • Use CELL_OFFLOAD_PLAN_DISPLAY = ALWAYS when planning migrations to Exadata, to see which queries can benefit from offloading.
  • Keep CELL_OFFLOAD_DECRYPTION enabled (TRUE) for efficient handling of encrypted data.
  • Use optimizer hints (OPT_PARAM) only for fine-tuning specific queries.

Leave a Reply