Oracle RAC Affinity Benefits for Partitioned Tables and Distributed Transactions
Which two benefits are obtained by using Affinity to reduce global resource contention? (Choose two.)
Community Votes
75% of anonymous learners picked answer BE. Votes are pick records left by other test-takers — they are not the verified answer.
Community Insight
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.
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.
Community Discussion (4 comments)
Comments & Corrections
No comments yet — spotted an error or have a note? Share it below.
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
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?
Option A implies all requests for a partitioned table go to one instance. Affinity actually maps specific partitions or subsets to different instances based on load and data location, not just a single static target for the whole table.
How does XA affinity reduce contention?
XA affinity directs all branches of a distributed transaction to a single RAC instance. This prevents cross-instance locking and minimizes global cache block pings during the transaction processing.