TU24x7Technical Knowledge Base

Oracle EBR Performance Validation Framework

Overview

This document provides a structured methodology to validate performance after enabling Oracle Edition-Based Redefinition (EBR).

The objective is to identify:

  • SQL regressions
  • Optimizer plan changes
  • Statistics issues
  • EBR object overhead
  • Editioning View impact
  • Crossedition Trigger impact
  • VPD policy side effects
  • Parsing and cursor invalidations
  • Locking and contention
  • Infrastructure bottlenecks

The framework is designed for:

  • Oracle ERP Cloud
  • Fusion Applications
  • OCI Databases
  • Oracle Database 19c
  • Oracle Database 23ai
  • GoldenGate environments using EBR

Phase 1 – Establish Performance Baseline

Objective

Before troubleshooting EBR itself, determine whether the slowdown is caused by:

  • SQL execution
  • CPU
  • I/O
  • Locks
  • Parsing
  • Network
  • Storage
  • Application logic

Collect Current Database Health

Database Time

SELECT
    metric_name,
    value
FROM v$sysmetric
WHERE metric_name IN (
    'Database CPU Time Ratio',
    'Database Wait Time Ratio',
    'Host CPU Utilization (%)'
);

Top Wait Events

SELECT
    event,
    total_waits,
    time_waited
FROM v$system_event
ORDER BY time_waited DESC;

Active Sessions

SELECT
    sid,
    serial#,
    username,
    module,
    event,
    state
FROM v$session
WHERE status='ACTIVE';

Success Criteria

Normal conditions:

  • CPU below 80%
  • No excessive locking
  • No unexpected wait events
  • Stable response times

Phase 2 – Verify Edition Configuration

Objective

Confirm that sessions are executing under the expected edition.


Current Database Editions

SELECT
    edition_name,
    parent_edition_name,
    usable
FROM dba_editions
ORDER BY edition_name;

Current Session Edition

SELECT
    sys_context(
        'USERENV',
        'CURRENT_EDITION_NAME'
    ) edition_name
FROM dual;

Sessions By Edition

SELECT
    username,
    module,
    sys_context(
        'USERENV',
        'CURRENT_EDITION_NAME'
    ) edition_name
FROM v$session
WHERE username IS NOT NULL;

Validation Goals

Verify:

  • Correct edition is active
  • No unexpected editions in use
  • Application servers are using the same edition

Phase 3 – Identify SQL Regressions

Objective

Determine whether EBR activation changed execution plans.


Top SQL By Elapsed Time

SELECT *
FROM (
    SELECT
        sql_id,
        plan_hash_value,
        executions,
        elapsed_time/1000000 elapsed_seconds,
        cpu_time/1000000 cpu_seconds,
        buffer_gets,
        disk_reads
    FROM v$sql
    ORDER BY elapsed_time DESC
)
WHERE rownum <= 50;

Top SQL By Buffer Gets

SELECT *
FROM (
    SELECT
        sql_id,
        executions,
        buffer_gets,
        elapsed_time/1000000 elapsed_seconds
    FROM v$sql
    ORDER BY buffer_gets DESC
)
WHERE rownum <= 50;

Detect Plan Changes

SELECT
    sql_id,
    COUNT(DISTINCT plan_hash_value)
FROM v$sql
GROUP BY sql_id
HAVING COUNT(DISTINCT plan_hash_value) > 1;

Validation Goals

Identify:

  • New execution plans
  • Increased logical I/O
  • Increased physical I/O
  • Increased CPU consumption

Phase 4 – Editioning View Analysis

Objective

Determine whether Editioning Views are introducing additional overhead.


List Editioning Views

SELECT
    owner,
    view_name
FROM dba_editioning_views
ORDER BY owner, view_name;

Compare View Definition

SELECT
    owner,
    view_name,
    text_vc
FROM dba_views
WHERE view_name='<VIEW_NAME>';

Validation Goals

Verify:

  • View is simple projection only
  • No unexpected joins
  • No hidden predicates

Phase 5 – Object Invalidation Analysis

Objective

Identify objects invalidated after EBR deployment.


Invalid Objects

SELECT
    owner,
    object_type,
    object_name,
    status
FROM dba_objects
WHERE status='INVALID'
ORDER BY owner;

Recently Recompiled Objects

SELECT
    owner,
    object_name,
    object_type,
    last_ddl_time
FROM dba_objects
ORDER BY last_ddl_time DESC;

Validation Goals

Verify:

  • No unexpected invalidations
  • No continuous recompilation

Phase 6 – Statistics Validation

Objective

Ensure optimizer statistics remain accurate after EBR deployment.


Stale Statistics

SELECT
    owner,
    table_name,
    stale_stats
FROM dba_tab_statistics
WHERE stale_stats='YES';

Missing Statistics

SELECT
    owner,
    table_name,
    last_analyzed
FROM dba_tables
WHERE last_analyzed IS NULL;

Histogram Review

SELECT
    owner,
    table_name,
    column_name,
    histogram
FROM dba_tab_col_statistics
WHERE histogram <> 'NONE';

Validation Goals

Verify:

  • Statistics are current
  • Histograms remain appropriate
  • Cardinality estimates are accurate

Phase 7 – Trigger Impact Analysis

Objective

Determine whether crossedition triggers are introducing DML overhead.


Crossedition Triggers

SELECT
    owner,
    trigger_name,
    crossedition
FROM dba_triggers
WHERE crossedition='YES';

Trigger Status

SELECT
    owner,
    trigger_name,
    status
FROM dba_triggers;

Validation Goals

Measure:

  • Insert latency
  • Update latency
  • Delete latency

Before and after trigger execution.


Phase 8 – Locking and Contention

Objective

Identify blocking sessions.


Blocking Sessions

SELECT
    blocking_session,
    sid,
    serial#,
    event
FROM v$session
WHERE blocking_session IS NOT NULL;

Locked Objects

SELECT
    lo.session_id,
    do.owner,
    do.object_name
FROM v$locked_object lo
JOIN dba_objects do
ON lo.object_id = do.object_id;

Validation Goals

Verify:

  • No blocking chains
  • No excessive row locking

Phase 9 – SQL Plan Validation

Objective

Compare execution plans before and after EBR.


Display Cursor Plan

SELECT *
FROM TABLE(
    dbms_xplan.display_cursor(
        '<SQL_ID>',
        NULL,
        'ALLSTATS LAST'
    )
);

Validation Goals

Compare:

  • Estimated rows
  • Actual rows
  • Join methods
  • Index usage
  • Partition pruning

Phase 10 – End-to-End Workload Simulation

Objective

Simulate real business workloads.


Recommended Tests

OLTP

  • Inserts
  • Updates
  • Deletes
  • Commits

Reporting

  • Aggregations
  • Large scans
  • BI queries

Batch

  • Concurrent jobs
  • Parallel execution
  • ETL processes

GoldenGate

  • Replication lag
  • Extract latency
  • Replicat latency

Success Criteria

Performance degradation should remain:

  • < 10% CPU increase
  • < 10% elapsed time increase
  • No plan regressions
  • No additional contention
  • No excessive parsing
  • No replication impact