Oracle RAC Affinity Benefits for Partitioned Tables and Distributed Transactions
Short answer
BE Oracle RAC affinity reduces global resource contention by routing disjoint row subsets to specific instances for partitioned tables and directing all branches of a distributed transaction to a single instance.
Question
Key Takeaways
The question tests understanding of data affinity mechanisms, with the common trap being confusion between even distribution (load balancing) and localized access (affinity).
This page explains how Oracle RAC affinity improves performance by enhancing cache locality and reducing internode synchronization. It establishes that the correct benefits are achieved through disjoint row subsets for partitioned tables and single-instance routing for distributed transactions.
Common mistake: Many learners select A because it sounds like a strong performance benefit, but they fail to distinguish between 'partitioned table' affinity which targets specific partitions versus the broader 'disjoint subset' definition required for optimal global resource contention reduction in this context.
Expert Analysis
Why the Answer Is Correct
Oracle RAC affinity is designed to minimize global cache contention by ensuring that related data accesses occur on the same instance. Option B is correct because Data Affinity routes requests for a disjoint subset of rows (such as a specific partition or key range) to a specific instance, improving cache hit rates and reducing block ping. Option E is correct because XA affinity ensures all branches of a distributed transaction are directed to a single instance, preventing cross-instance locks and synchronization overhead during the commit phase.
Why the Other Options Are Wrong
Option A is incorrect because while it mentions cache locality, it inaccurately states that affinity routes ALL requests for a partitioned table to a SINGLE instance regardless of load; affinity is about mapping data subsets to instances, not necessarily monopolizing one instance for all activity if multiple partitions exist. Option C describes even distribution, which is the opposite of affinity; this leads to global cache contention rather than reducing it. Option D suggests spawning new dedicated instances, which is an operational configuration change, not a feature of connection affinity itself.
Community Comment Notes
The community largely agrees on BE, citing official Oracle documentation regarding Data Affinity and XA Affinity. As user krwi1 noted, option A is wrong because affinity maps subsets to instances, not just a single instance for the whole table indiscriminately. User Test_1 referenced the UCP documentation confirming that affinitized tables partition data such that specific subsets go to specific instances.
Official Reference
- https://docs.oracle.com/en/database/oracle/oracle-database/19/racad/workload-management-with-dynamic-database-services.html
- https://docs.oracle.com/en/database/oracle/oracle-database/19/jjucp/connection-affinity.html
These links open the official vendor documentation in a new tab.
Exam Strategy
When dealing with 'Affinity' questions, remember that affinity means 'sticking together.' Look for options that describe keeping related data or transactions on the SAME node to avoid network traffic, rather than spreading them out evenly.
Frequently Asked Questions
Why is option A wrong for partitioned table affinity?
How does XA affinity reduce contention?
Community Votes
75% of anonymous learners picked answer BE. Votes are pick records left by other test-takers — they are not the verified answer.
Discussion 4 contributions
Compiled from public community threads and reader submissions, lightly edited for clarity. Handles and vote tallies are shown as recorded, and comments reflect the views of individual contributors.
From public community threads 4
-
lcoleandro 👍 1A. Correct: Improves performance by routing partitioned table requests to a single instance, enhancing cache locality and reducing inter-instance synchronization. B. Correct: Optimizes performance by distributing requests for disjoint subsets of data among instances, improving cache usage and reducing inter-instance synchronization. C. Incorrect: Incorrectly suggests evenly distributing requests among instances, which doesn't necessarily reduce global resource contention. D. Incorrect: Focuses on spawning new instances for transaction isolation rather than reducing resource contention through affinity. E. Incorrect: Proposes directing all transaction branches to one instance for cache benefits but overlooks overall resource contention reduction.
-
krwi1 👍 1A - wrong B - true Starting from Oracle Database Release 18c, UCP supports Oracle RAC Data Affinity. When you enable Data Affinity on the Oracle RAC database, data on the affinitized tables are partitioned in such a way that a particular partition or subset of rows for a table is affinitized to a particular Oracle RAC database instance. The affinity leads to higher performance and scalability for the applications due to improved cache locality and reduced internode synchronization and block pings among the RAC instances. https://docs.oracle.com/en/database/oracle/oracle-database/19/jjucp/connection-affinity.html#GUID-AD235F70-10F6-4DF3-8CE4-91769B828DD3
-
Test_1 👍 1BE https://docs.oracle.com/en/database/oracle/oracle-database/19/jjucp/connection-affinity.html#GUID-AD235F70-10F6-4DF3-8CE4-91769B828DD3 Starting from Oracle Database Release 18c, UCP supports Oracle RAC Data Affinity. When you enable Data Affinity on the Oracle RAC database, data on the affinitized tables are partitioned in such a way that a particular partition or subset of rows for a table is affinitized to a particular Oracle RAC database instance. The affinity leads to higher performance and scalability for the applications due to improved cache locality and reduced internode synchronization and block pings among the RAC instances
-
217972f 👍 1BE as explained here: https://docs.oracle.com/en/database/oracle/oracle-database/19/racad/workload-management-with-dynamic-database-services.html
Reader comments & corrections
No reader corrections yet — spotted an error or have a note? Share it below.