Earn a Salesforce AI Certification by IIT + 12-Week Internship Secure Your Spot Today!

Earn a Salesforce AI Certification by IIT + 12-Week Internship Secure Your Spot Today!
What Is Governor Limits in Salesforce? - Blog | Saasguru

What Is Governor Limits in Salesforce?

Restrictions imposed on resources to regulate and manage their utilization, especially on cloud platforms with multitenant architecture, are known as governor limits. These limits aim to ensure that a platform is available to multiple users simultaneously and performs well. Salesforce has many customers, and to ensure that a single org does not monopolize the shared resources, Salesforce has enforced governor limits on all of its offerings. To prevent consuming extra storage space and errors generated due to lengthy codes, you must understand what the governor limits and the types of governor limits involved in Salesforce are.

This blog will provide a complete understanding of the governor limits in Salesforce. So, let’s examine its definition, types, and why governor limits are advantageous. Once you understand governor limits and their types, you should know how to avoid and overcome them to write and execute codes as required.

Governor Limits In Salesforce

The Apex runtime engine has enforced governor limits in Salesforce, which can be defined as the runtime limits used to write efficient and scalable code. To ensure that the shared resources are not monopolized by runaway Apex code or processes, Apex runtime engine has strictly enforced limits in Salesforce

In a multitenant environment, any single client can monopolize the resource, and chances are higher due to multiple clients and org on the Salesforce platform. Governor limits help in avoiding such circumstances and their consequences. For instance, the associated governor issues a runtime exception when a script exceeds a limit.

Salesforce Bootcamp

Here are a set of examples of governor limits in Salesforce:

  • Up to 200,000 lines of Apex codes can be executed on Salesforce.
  • The number of records in DML statements can only be 10,000 in total.
  • A total of 10,000 SOQL queries can be utilized.
  • The total number of records is 50,000 for all SOQL queries.
  • 3 MB is the limit for Heap in Salesforce.

The above are just a few of many Governor limits and allocations enforced on the platform of Salesforce. Understanding the various types of limits enforced before knowing each Governor’s limit specifically is essential.

Let us observe the different types of governor limits in Salesforce.

Types Of Governor Limits In Salesforce

Salesforce comprises various types of limits, but some of the allocations and limits that are pretty common are as follows;

    • Pre-transaction Apex Limits: These limits count for and are specific to each Apex transaction.
    • Force.com Platform Apex Limits: These limits are enforced by the lightning platform and are not specific to an Apex transaction.
    • Size-specific Apex Limits: These Apex limits are imposed to manage the size of the codes written to be executed.
    • Static Apex Limits: These Apex limits are not specific to a single transaction and are applied to all transactions.
    • Push Notifications Limits: These limits take care of the maximum number of messages sent from the Apex in a single execution context.
    • Email Limits: As the name suggests, this limit is imposed to regulate the maximum number of emails sent by Apex in a single execution.
    • Miscellaneous Apex Limits: These limits take care of other things apart from those mentioned above—for instance, the maximum number of records processed or callouts in a single Apex transaction.
 

Some other allocations or limits are related to field lengths, user interface elements, Salesforce contracts, and desktop integration clients on the Salesforce platform.

What Is The Purpose Of Governor Limits? Are They Advantageous?

Using and executing lengthy codes can take up excess space and result in storage issues. Governor limits help prevent problems. There are many reasons for enforcing governor limits.

Governor limits are beneficial, even though they are the constraints that restrict you while writing and executing codes as per your requirement. 

Other than preventing the programming environment of Salesforce from the saturation of resources by the runaway applications, here are some of the other advantages;

  1. The coding limits provided by Apex are entirely different and unique, which can be beneficial for both sides, client org, and the Salesforce platform.
  2. As the codes are analyzed, it ensures that we are using the best practices and utilizing them efficiently for coding.
  3. These limits also help ensure that all applications function correctly, individually and with each other.

How Can You Avoid Governor Limits In Salesforce?

Every programming platform enforces certain constraints and features to provide a stable and well-functioning environment. But Apex is designed differently, which offers the best practices. To overcome and stay out of these limits, let us look into the following tricks and tips; Read about Apex Best Practices here.

1. 101 Error

This system limit exception can arise due to too many SOQL queries. 

To overcome this, avoid SOQL queries in FOR loop and use the collection to avoid it inside the loop. You can also Bulkify Apex Trigger and follow the Trigger framework to prevent recursive issues while coding.

2. DML 150 Limit 

This limit is related to the number of DML operations in a single transaction.

To fix this, avoid using DML statements inside for loops, and to keep the count of DML as one, do a DML operation on a collection. 

3. Apex CPU Time Limit Exceeded

This error occurs when a single transaction takes more than 10000 ms for synchronous or 60000 ms for the asynchronous process. To avoid this, make sure your solution is designed effectively and broken into smaller transactions that can complete in the allocated time. There are other ways as well to avoid CPU time limit errors, but that depends on your customer’s IT architecture and how we can leverage and delegate complex processing to other systems based on the requirement and business processes.

4. Other Salesforce Governor Limits

There are various other governor limits that every Salesforce admin, developer, and Architect must know so that they can design and develop the application within the boundaries of the limits. 

If you still need help managing and writing codes without exceeding the limits, educate yourself on these tools available on Salesforce and the best practices of Apex, along with the knowledge of Governor limits in Salesforce.

Get your Salesforce Certifications on the first go

Use Coupon Code BLOG20 to avail flat 20% discount on saasguru Programs.

Summing Up

Although limits restrict you to a certain point, they can be used to your advantage if you learn how to utilize them properly. Remember the Apex best practices to stay out of governor limits while using Salesforce and make the most of this platform. Before beginning your work on a Salesforce project, knowing limits is essential, as these limits could help in the prevention of errors and facilitate smooth operation. 

Now that you understand why knowing governor limits is essential keep the key points in mind and get started. We have provided sufficient details for you to write and execute codes, avoiding any trouble. But to gather more relevant information, feel free to join our Slack community and interact with experienced Salesforce professionals.

Frequently Asked Questions (FAQs)

1. What is Governor Limits in Salesforce?

Governor limits in Salesforce refer to the runtime limits enforced by the Apex runtime engine to manage the efficient and scalable use of resources in a multi-tenant environment. These limits are set to ensure that one client or process does not monopolize the shared resources on the Salesforce platform. Examples of governor limits include limits on the number of lines of Apex code that can be executed, the number of records retrieved in a SOQL query, and the total heap size in a transaction. By setting these limits, Salesforce ensures fair resource allocation among all users and maintains optimal platform performance.

2. Why Do We Need Governor Limits in Salesforce?

Governor limits are essential in Salesforce for several reasons:

  • Resource Management: In a multi-tenant architecture like Salesforce, resources are shared among multiple clients. Governor limits prevent any single client from consuming excessive resources, ensuring equitable resource allocation.
  • Performance Stability: By imposing these limits, Salesforce ensures that the performance of the platform remains stable and efficient for all users.
  • Encourages Efficient Coding: These limits push developers to write more efficient and optimized code, adhering to best practices in programming.
  • Prevents Runaway Processes: Governor limits help in avoiding situations where poorly written code could consume excessive system resources, potentially affecting the service for other users.

3. How to Check Governor Limits in Salesforce?

To check governor limits in Salesforce, you can use the Developer Console, System Overview, or programmatic methods:

  • Developer Console: The Developer Console provides a view of the governor limits for executed code. You can see real-time statistics on how much of each limit your code has consumed.
  • System Overview: In Setup, the System Overview page shows the usage against various limits for your Salesforce org.
  • Apex Code: You can also programmatically check governor limits using Apex methods like Limits.getLimitQueries() or Limits.getLimitDmlRows() to retrieve the specific limits and their current usage.

4. How to Avoid Governor Limits in Salesforce?

To avoid hitting governor limits in Salesforce, follow these best practices:

  • Bulkify Apex Code: Ensure that your Apex triggers and classes are bulkified to handle multiple records efficiently without hitting limits.
  • Optimize SOQL Queries: Avoid SOQL queries inside loops; instead, use collections to gather data and query outside the loop.
  • Efficient Use of DML Statements: Aggregate DML operations where possible instead of using them inside loops.
  • Monitor and Test: Regularly monitor your code’s performance against the limits and test in sandbox environments before deployment.
  • Utilize Batch Apex: For processing large data sets, use Batch Apex which is designed to break the process into smaller chunks that adhere to governor limits.
  • Use @future or Queueable Apex: For asynchronous processing, use @future methods or Queueable Apex to defer operations that are not required to be executed immediately.
Table of Contents

Subscribe & Get Closer to Your Salesforce Dream Career!

Get tips from accomplished Salesforce professionals delivered directly to your inbox.

Looking for Career Upgrade?

Book a free counselling session with our Course Advisor.

By providing your contact details, you agree to our Terms of use & Privacy Policy

Unlock Your AI -Powered Assistant

Gain Exclusive Access to Your Salesforce Copilot

Related Articles

Mass Assign User Permission Set in Salesforce

Learn how to efficiently mass assign user permission sets in Salesforce using tools like Data Loader. Save time and ensure accuracy. Read now!

How to Clone a FlexCard in Salesforce

Learn how to clone a FlexCard in Salesforce with this step-by-step guide. Simplify customization and boost efficiency effortlessly!

Salesforce Introduces Agentforce 2.0: Redefining How Work Gets Done

Salesforce introduces Agentforce 2.0, the AI platform transforming digital labor with autonomous agents and seamless workflows. Read now!