📊
Governor Limits 치트 시트
트랜잭션당 Salesforce 한도를 동기/비동기 컨텍스트로 명확히 구분한, 보기 쉽고 필터 가능한 표입니다.
| 카테고리 | 한도 | 동기 | 비동기 |
|---|---|---|---|
| SOQL | SOQL 쿼리 수 | 100 | 200 |
| SOQL | SOQL로 조회한 레코드 | 50,000 | 50,000 |
| SOQL | Database.getQueryLocator로 조회한 레코드 | 10,000 | 10,000 |
| SOSL | SOSL 쿼리 수 | 20 | 20 |
| SOSL | 단일 SOSL로 조회한 레코드 | 2,000 | 2,000 |
| DML | DML 문 수 | 150 | 150 |
| DML | DML로 처리한 레코드 | 10,000 | 10,000 |
| DML | Approval.process / Database.emptyRecycleBin 호출 | 150 | 150 |
| CPU / 메모리 | 최대 CPU 시간(타임아웃) CPU 시간에는 콜아웃이나 데이터베이스 작업 대기 시간이 포함되지 않습니다. | 10,000 ms | 60,000 ms |
| CPU / 메모리 | 최대 힙 크기 | 6 MB | 12 MB |
| 콜아웃 | 콜아웃(HTTP / 웹 서비스) | 100 | 100 |
| 콜아웃 | 콜아웃 누적 타임아웃 | 120 s | 120 s |
| 비동기 | @future 메서드 호출 @future 메서드는 비동기 컨텍스트에서 호출할 수 없습니다. | 50 | 0 |
| 비동기 | 큐에 추가된 작업(System.enqueueJob) Queueable/Batch/@future에서는 Queueable 작업을 1개만 연결할 수 있습니다. | 50 | 1 |
| 비동기 | 큐에 있는/활성 Batch 작업 Holding/Queued + Active 합산. | 5 | 5 |
| 이메일 | sendEmail 메서드 호출 | 10 | 10 |
| 기타 | 실행된 문 수 CPU 시간 한도에 의해 간접적으로 제한됩니다. | no hard limit | no hard limit |
| 기타 | describe 재귀의 최대 스택 깊이 | 100 | 100 |
지정한 조건에 맞는 결과가 없습니다.
한도는 단일 Apex 트랜잭션에 적용됩니다. 값은 참고용입니다 — 최신 값은 항상 공식 Salesforce 문서 「Apex Governor Limits」에서 확인하세요.