Loading

레코드를 삭제할 때 ‘삭제 작업의 규모가 너무 큼’ 오류가 발생하거나 작업이 너무 느림

게시 일자: Apr 2, 2026
상세 설명

Salesforce에서 레코드를 삭제하면 대기 시간이나 로드 시간이 길어지거나, 타임아웃이 발생하거나, 다음 메시지가 나타날 수 있습니다.

 

'삭제 작업의 규모가 너무 큼

100,000개 이상의 결합된 개체와 하위 레코드를 동시에 삭제할 수 없습니다. 레코드 선택 개수를 줄여야 합니다. 하위 레코드의 개수가 100,000개가 넘는 개체 하나를 삭제하려는 경우, 해당 개체를 삭제하기 전에 적절한 개수의 하위 레코드를 먼저 삭제하세요.

여기를 클릭하면 이전 페이지로 돌아갑니다.

DELETE_OPERATION_TOO_LARGE:너무 많은 레코드를 캐스케이드(Cascade)로 삭제하려 합니다.'


이 문제는 일반적으로 많은 수의 레코드가 마스터-세부 사항 또는 조회 관계를 통해 삭제할 레코드와 연결되어 있을 때 발생합니다. 

레코드 삭제시의 성능 문제 및 '삭제 작업의 규모가 너무 큼' 메시지를 해결하려면, 시스템 관리자는 관련 레코드를 식별하여 삭제하고, 이를 휴지통에서 비워야 합니다. 또한 해당 레코드의 삭제를 재차 시도하기 전에 시스템에서 관련 레코드를 완전히 삭제할 수 있도록 Salesforce 서포트에 연락하여 수동으로 물리삭제 (PD) 를 진행할 필요가 있습니다.
 

관련 정보:


삭제 작업은 수행 가능한 데이터베이스 트랜잭션 중에서도 손꼽힐 정도로 리소스를 많이 소모합니다. 상세한 관련 정보는 Deleting Data에서 확인하세요. 또한 개체 관계 개요 문서를 통해서 다양한 개체 관계 유형과 관련된 캐스케이드 삭제 및 그 밖의 고유한 삭제동작에 대해 알아보는 것이 좋습니다.

The Force.com 다중 테넌트 아키텍처에 따른 애플리케이션 성능상의 이유로, 결합 개체를 최대 10만 개만 삭제할 수 있게 하는 제한을 하드코딩을 통해 적용했습니다. 또한 모범 사례에 따라서 조회 또는 마스터-세부 사항 관계 필드를 통해서 상위 레코드에 연결된 하위 레코드의 수가 10,000개를 초과하지 않는 것이 바람직합니다. 관련 레코드가 10,000개에 근접하거나 이를 초과하면 데이터 불균형이 발생하여 삭제 작업 및 기타 애플리케이션 영역의 성능에 부정적인 영향을 미칠 수 있습니다.

아래의 문서에서 데이터 불균형 및 관련 모범 사례에 대해 확인하세요.

 
솔루션
 

경고
데이터 작업을 수행하기 전에 항상 데이터를 백업하세요. 자세한 내용은 Salesforce에서 백업 데이터 내보내기 또는 Export Data from Salesforce를 참조하세요. 
일부 레코드로 테스트를 실행한 후, Salesforce 내의 해당 레코드를 수동으로 열어 레코드가 올바른지 확인하는 과정을 통해 조작이 정상적으로 완료된 것을 확인하는 것이 바람직합니다.


문제의 레코드를 삭제하거나 성능을 향상시키려면 관리자는 관련 데이터 및 잠재적인 불균형이 존재하는 위치를 찾아내야 합니다. 해당 데이터를 찾아낸 후에는 휴지통을 비워서 해당 레코드를 삭제하거나 영구 삭제해야 합니다. 이렇게 하면 자동으로 예약된 백그라운드 프로세스를 통해 관련 레코드를 물리적으로 삭제하거나, 지원 사례의 고객 요청을 통해 그 과정을 수동으로 시작할 수 있습니다.

참고: Salesforce 서포트는 고객을 대신해 관련 개체 및 레코드의 필수 메타데이터 분석, 식별, 삭제 작업을 수행할 수 없습니다. 이는 Salesforce 서포트의 서비스 범위를 벗어나며 아래의 과정은 고객 또는 클라이언트 측 관리자가 수행해야 합니다.
'삭제 작업의 규모가 너무 큼' 오류를 해결하려면 해당 레코드를 삭제하기 전에 관련 레코드를 물리적으로 삭제해야 합니다. 이와 관련된 전반적 과정은 Salesforce의 Best Practices for Deployments with Large Data Volumes - Deleting Data에 속합니다.
 

관련 개체 찾아내기:


조직의 데이터 모델이 상대적으로 단순하며 문제 레코드의 해당 개체에 대하여 소수의 관계만 존재할 경우, 문제의 레코드 관련 목록을 확인하거나, 보고서를 실행하거나, SOQL 쿼리를 수행함으로써 관련 레코드가 많이 존재하는 위치를 찾아낼 수 있습니다.

반면 데이터 모델이 복잡하며 문제의 레코드의 사용자 정의 개체가 다른 개체와 많은 관계를 공유하고 있거나 목록 보기 또는 보고서를 통해 관련 레코드를 찾을 수 없는 경우, 관련 데이터 및 불균형을 쉽게 찾아내기가 어려울 수 있습니다.

하지만 다행히도 몇 가지 옵션을 사용하면 문제가 있는 레코드의 개체에 대한 관계를 모두 구분해낼 수 있습니다.


- 스키마 빌더를 사용하면 개체 간의 관계를 시각적으로 확인할 수 있습니다. 자세한 관련 지침은 스키마 빌더를 사용해서 삭제 작업 시 개체 관계 필드를 찾아내고 쿼리하기에서 확인하세요.

- SOQL and SOSL Reference 가이드의 '상위 및 하위 관계 찾아내기' 주제에서 설명하는 것처럼 조직에 대한 Enterprise WSDL을 살펴볼 수도 있습니다.

 

레코드가 있는 위치를 찾아내고 관계형 데이터를 삭제하기


문제의 레코드와 잠재적으로 관련된 개체를 모두 찾아내고 나면 각 개체에 대해서 SOQL 쿼리를 실행하여 관련 데이터가 존재할 수 있는 위치를 알아낼 수 있습니다.

예를 들어 계정을 삭제할 수 없다면 연결된 연락처 레코드가 너무 많기 때문일 수 있습니다. 연락처 개체에 대한 아래의 쿼리 예시에서 <RecordIdHere> 대신 문제를 겪는 계정의 Salesforce 고유 레코드 ID를 입력하면 계정과 관련된 연락처의 개수를 알 수 있습니다.


SELECT count() FROM Contact WHERE AccountId = '<RecordIdHere>'

위의 쿼리 결과를 통해 대규모의 관계형 데이터 세트가 어디에 존재하는지 알아낼 수 있을 것입니다. 관련 레코드가 반환되지 않으면 queryAll()(또는 Data Loader에서 Export All(모두 내보내기)) 작업을 실행하여 휴지통에 존재할 수 있는 일시 삭제된 레코드까지 포함해 보세요. 관련 레코드가 이미 삭제된 경우, 휴지통을 비워서 해당 기록이 영구 삭제되며 물리적 삭제가 가능한 대상이 되는지 확인하세요.

관련 레코드의 대다수가 어디에 존재하는지를 파악했다면 Salesforce에서 백업 데이터 내보내기와 Export Data from Salesforce를 수행해서 관련 레코드의 ID 파일을 만든 다음, 문제 레코드의 삭제 경합 또는 삭제 실패를 유발하는 하위 및 관련 레코드를 삭제하는 것이 좋습니다.
자세한 내용은 Insert, Update, or Delete Data Using Data Loader에서 확인하세요. 참고: 백업용으로 해당 파일의 사본을 안전한 위치에 저장하는 것이 좋습니다. 
 

문제 레코드의 관련 레코드를 삭제한 다음 해야 할 일


휴지통을 확인한 다음 비워서 삭제된 레코드를 영구적으로 소거합니다. 물리적 삭제를 하면 삭제된 레코드가 영구적으로 소거됩니다. 하지만 인위적으로 영구 삭제를 해야 할 경우, Salesforce 서포트에 수동 물리삭제의 개시와 실행의 승인에 대해 문의해 주세요.

 
Knowledge 기사 번호

000382586

 
로드 중
Salesforce Help | Article