Subquery vs Joins
Scenario 1
Query Under Analysis
SELECT
COUNT(1)
FROM
devicemanagementservice.device
WHERE
device_user_id IN (
SELECT
user_id
FROM
segmentservice.audiences_by_user
WHERE
audience_id = '01903B19116B7CE396877DA3E164F51C'
)
AND push_token IS NOT NULL
AND status = 'ENABLED';What This Query Does
Why This Can Be a Performance Problem
1. Subquery Returns Large Result Set
2. Lack of Indexes
3. Query Cannot Be Pushed Down Efficiently
Optimization Strategy
A. Rewrite the Query Using a JOIN
Expected Oracle Execution Plan
Recommended Indexes
On segmentservice.audiences_by_user
segmentservice.audiences_by_userOn devicemanagementservice.device
devicemanagementservice.deviceLast updated