Salesforce Decode
Salesforcedecode
Back to questions
ApexAdvancedsoqlperformanceselectivity

Optimize SOQL queries for selective filters and query performance

Real World Scenario

Query on Custom_Object__c with Status__c filter returns full table scan warning and times out in batch job.

Expected Answer

• Leading WHERE clause on indexed fields: Id, foreign keys, standard selective fields • Custom indexes via Salesforce support for high-cardinality filter fields • Avoid leading % wildcard LIKE queries on non-indexed text fields • Use Query Plan tool to verify index usage before deployment • Limit rows returned with LIMIT only after selective filter—not as substitute • Relationship queries vs separate queries based on row volume and depth • Consider formula field indexing limitations for filter fields

Follow-Up Questions & Answers

Click to expand — each follow-up includes a direct, interview-ready answer

Main difference: use case and scale. Leading WHERE clause on indexed fields: Id, foreign keys, standard selective fields. Custom indexes via Salesforce support for high-cardinality filter fields. Pick based on your integration pattern and team capability. Non-selective queries fail suddenly at LDV—performance test queries at projected volume, not current 10k rows. Optimize for scale and operational observability.

Architect Perspective

Non-selective queries fail suddenly at LDV—performance test queries at projected volume, not current 10k rows.