๐Ÿ“Š

Governor Limits Cheat Sheet

A clear, filterable table of Salesforce per-transaction limits, with a clean split between the synchronous and asynchronous context.

Category Limit Synchronous Asynchronous
SOQL Total SOQL queries 100 200
SOQL Records retrieved by SOQL 50,000 50,000
SOQL Records retrieved by Database.getQueryLocator 10,000 10,000
SOSL Total SOSL queries 20 20
SOSL Records retrieved by a single SOSL 2,000 2,000
DML Total DML statements 150 150
DML Records processed by DML 10,000 10,000
DML Approval.process / Database.emptyRecycleBin calls 150 150
CPU / Memory Maximum CPU time (timeout)
CPU time excludes time waiting for callouts and database operations.
10,000 ms 60,000 ms
CPU / Memory Maximum heap size 6 MB 12 MB
Callouts Callouts (HTTP / web service) 100 100
Callouts Cumulative callout timeout 120 s 120 s
Async @future method invocations
@future methods cannot be called from an asynchronous context.
50 0
Async Jobs added to the queue (System.enqueueJob)
In Queueable/Batch/@future you can chain only 1 more Queueable job.
50 1
Async Batch jobs queued/active
Holding/Queued + Active combined.
5 5
Email sendEmail method calls 10 10
Other Total executed statements
Indirectly bounded by the CPU time limit.
no hard limit no hard limit
Other Maximum describe-recursion stack depth 100 100

Limits apply to a single Apex transaction. Values are for reference โ€” always verify the current values in the official Salesforce โ€œApex Governor Limitsโ€ documentation.