Salesforce is considered as a multi-tenant architecture, where all the users use the same infrastructure and the same version of the Salesforce platform. As compared to a single client platform such as a CSE (client-server enterprise) application or the mail server, the multi-tenant architecture will automatically and simultaneously release upgrades for all users.
This is to ensure that you comply with Salesforce standards. As Salesforce executes in a multi-tenant architecture, it does not want clients to over-utilize the resources. Your code must be executed within the specified execution limits. If the governor limit exceeds, a runtime error is thrown.
Here are the best practices to follow in your code to avoid this limit errors.
Important Governor Limits in Salesforce
- One transaction can use a maximum of 100 Salesforce Object Query Language (SOQL) Queries.
- A maximum of 20 SOSL requests can be used in one transaction.
One transaction can use a maximum of 150 Data Manipulation Language (DML) statements.
- In one transaction, a maximum of 50,000 SOQL records can be retrieved.
- In one transaction, a maximum of 2,000 SOSL entries can be fetched.
Why Salesforce has Governor Limits?
Because Salesforce runs on a multi-tenant architecture (where all users share the same infrastructure and the same version of the Salesforce platform) and in order to have the same performance to the database, it has imposed some runtime limits called Governor Limits.
If some Apex code exceeds a limit, the associated governor issues a runtime exception that cannot be managed.
Types of Governor Limits:
- Per-Transaction Apex Limits
- Per-Transaction Certified Managed Package Limits
- Lightning Platform Apex Limits
- Static Apex Limits
- Size-Specific Apex Limits
- Miscellaneous Apex Limit
What are the ideal ways to avoid Salesforce Governor Limits?
From a developer’s perspective, it’s important to ensure that your code is scalable and doesn’t reach the governor limits. It is very important to follow some best practices so that your Code does not reach the governor’s limit.
Here are some best practices that you should follow:
- Avoid SOQL Queries or DML statements inside FOR loops.
- Use collections, optimize queries, and efficient FOR loops.
- Optimizes multiple triggers on the same object.
- Use the Peak Limitation Method to Avoid Limiting the Governor’s Population.
- Use @Future annotation to bypass the Governor limit errors.
- Use Batch Apex if you are working with more than 50,000 records.
- Decrease the count of queries and try to fetch all needed data in the same query than calling again and again to Database.
If any of the Governor Limits are not followed, an exception will be thrown and program execution will be stopped. Therefore, it is important to ensure that your code is scalable and follow the governor’s limits.
If you need assistance on governor limits in Salesforce or looking for a Salesforce Implementation Partner or Salesforce Development Company, Cloud Analogy is the name you can trust, today and forever.