Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon 샌드박스 환경에서 SOQL 쿼리가 더 빠르게 실행되는 이유


샌드박스 환경에서 SOQL 쿼리가 더 빠르게 실행되는 이유


샌드박스 환경의 SOQL 쿼리 성능

1. 데이터 연속성: 샌드박스 환경에는 연속된 데이터가 있어 보다 효율적인 쿼리 실행이 가능합니다. 이는 데이터가 프로덕션 환경에서 복사되어 레코드가 연속적인 방식으로 저장되어 데이터베이스가 레코드를 효율적으로 가져오기가 더 쉬워지기 때문입니다[2].

2. 캐시 및 인덱싱: 샌드박스 환경은 프로덕션 환경에 비해 캐시 및 인덱스 크기가 더 작습니다. 이는 데이터베이스가 대규모 캐시나 인덱스를 조사할 필요 없이 필요한 데이터에 빠르게 액세스할 수 있어 쿼리 실행이 더 빨라진다는 것을 의미합니다[2].

3. 하드웨어 구성: 샌드박스 환경은 일반적으로 프로덕션 환경에 비해 덜 강력한 하드웨어로 구성됩니다. 그러나 이는 데이터베이스의 로드가 적고 쿼리에 더 빠르게 응답할 수 있으므로 더 빠른 쿼리 실행에도 기여할 수 있습니다[2].

4. 데이터 조각화: 프로덕션 환경에는 조각난 데이터가 있는 경우가 많으며 이로 인해 쿼리 실행 속도가 느려질 수 있습니다. 반면 샌드박스 환경은 연속된 데이터를 보유하므로 복잡한 조인의 필요성이 줄어들고 쿼리 성능이 향상됩니다[2].

5. 쿼리 최적화: 샌드박스 환경은 쿼리 성능에 최적화되어 있습니다. 여기에는 쿼리 실행 속도를 향상시키기 위해 설계된 인덱스 및 캐싱의 사용이 포함됩니다[2].

SOQL 쿼리 최적화 모범 사례

1. 인덱싱된 필드 사용: SOQL 쿼리의 WHERE 절에 인덱싱된 필드를 사용하여 쿼리 성능을 향상시킵니다[1].

2. NULLS 방지: 인덱스[1] 사용을 방지하므로 쿼리에 NULLS를 사용하지 마세요.

3. 쿼리 필터 사용: 쿼리 성능을 향상시키기 위해 데이터의 10% 미만을 강조 표시할 수 있는 쿼리 필터를 사용합니다[1].

4. 와일드카드 사용 금지: `%`와 같은 쿼리에 와일드카드를 사용하지 마세요. 이렇게 하면 인덱스 사용이 방지됩니다[1].

5. 복잡한 쿼리 중단: 복잡한 쿼리를 간단한 단일 쿼리로 나누어 인덱스를 효과적으로 사용합니다[1].

6. 필수 필드 선택: SELECT 문에서 필수 필드만 선택하면 가져오는 데이터 양을 줄이고 쿼리 성능을 향상시킬 수 있습니다[1].

이러한 모범 사례를 따르고 샌드박스 환경과 프로덕션 환경 간의 SOQL 쿼리 성능 차이를 이해함으로써 Salesforce에서 더 나은 성능과 효율성을 위해 쿼리를 최적화할 수 있습니다.

인용:
[1] https://www.apexhours.com/large-data-volumes-ldv-in-salesforce/
[2] https://salesforce.stackexchange.com/questions/42163/performance-difference-between-sandbox-and-production-instances
[3] https://coefficient.io/salesforce-tutorials/how-to-run-soql-query-in-salesforce
[4] https://bluecanvas.io/blog/optimizations-for-salesforce-orgs-with-lots-of-data-part-2
[5] https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007T4MRBSA3