How To Avoid Data Skew In Salesforce And Improve The Performance Considerably
Posted: May 08, 2018
Every small decision that we make when designing or implementing a CRM system had a significant impact on the performance of Salesforce. This is largely true for the organizations having multiple records associated with the single account or we can say that a single parent with multiple child records that are not arranged properly.
What is Data Skew?
Data skew is the condition when more than 10,000 records are linked to a single account or they are owned by a single owner. The fact seems normal, Right? But it had a major effect on the performance in Salesforce.
To avoid data skew in Salesforce, you need a thoughtful business process and define the structure of the objects more clearly. In this article, our main focus is discussing on best practices to avoid data skew and improve performance in Salesforce.
Data skew is divided into three popular categories that need to be handled carefully for the optimum outcomes. These are – Account Data Skew, Ownership Skew, and Lookup Skew. Let us have a detailed discussion on each of the categories one by one.
How to avoid Account data skew in Salesforce?
Account and opportunity objects generally share the same resources. If you are authorized to access one account then you may access its child records too or we can say opportunities. As soon as, some opportunity record is modified, its respective account is also gets locked. Obviously, when one account and the related opportunities will be locked then performance is highly impacted and needs an action.
According to Salesforce rules book, more than 10,000 opportunities should not be connected to a single account. The best idea is to create multiple accounts and link the similar opportunities to their respective accounts.
Avoid Ownership skew in Salesforce
If a large number of records (>10,000) or similar objects are owned by a single user then it may result in ownership skew in the Salesforce. Let us make the concept clear with an example. Consider the situation when all the opportunities or unassigned Leads are handed to the Sales Department.
Another example is when complete data is imported into the Salesforce and data admin is the default owner in that case. The only solution is to assign ownership to different users especially after every set of 10,000 records or data objects.
Heavy ownership can destroy the performance of Salesforce CRM drastically. Assign a particular set of record to multiple users is the only solution to optimize the performance and avoid ownership skew in Salesforce. If this is not possible then below are given some recommendations that can be followed to deal with Ownership data skew perfectly –
Make sure that the users or owner that has been assigned to large child record does not have a role in the hierarchy.
The access to the child records should be granted to multiple users and it can be done perfectly at the profile level.
In case, you are not able to give profile-level access then categorize the records based on the sharing and grant access accordingly.
These are some interesting ideas that help you to avoid ownership skew and makes your job more pleasing with optimized performance levels.
Avoid Lookup Skew in Salesforce
When a large number of records are linked to a single account through lookup relationship, it is termed as lookup skew in the Salesforce. This type of relationship can result in performance bottlenecks that are generally not accepted by the organizations.
Take an example of ABC foundation where they have created multiple memberships for donors through a custom object. And there are approx. 20,000 members or more connected to a single membership level. If a plenty of accounts lookup for the same records type then this is taken as the example of account skew.
The biggest issue is here that parent account will be locked immediately in case of account skew, as soon as some child record is modified and changes are saved to the record. If parent record is locked, this is the condition of exception failure that is not affordable for any organization and same is true in case of ABC foundation as well if some donor account is locked completely. Here, are some recommendations that should be followed to manage the lookup skew properly.
Skew distribution – Your first responsibility is to check out the lookup record that skewed unexpectedly. Once you have created the list, distribute the skew and eliminate or minimize the lock exceptions considerably.
Manage workflows – With the help of triggers and APEX best practices, delete the unnecessary workflows to optimize the overall performance of a Salesforce CRM.
Load reduction – The other best solution is to manage loads generated by the automated processes periodically during non-peak times. In case, the end users are encountered with locks then you should reduce the batch size that will manage lock duration automatically. Make sure that end-users are able to access locks and they are not impacted by the automated business processes.
Picklist field should be the priority – In case, if lookup values are relatively very small in number then you should choose picklist field instead of lookup fields to give the proper explanation to a small set of lookup values.
The above discussion makes it clear that data skew is a performance bottleneck and this is necessary to avoid to make the things more precise and completely in your favor. Here, is a quick list or brief summary of the article to avoid data skew in Salesforce.
First of all, never allow the child records greater than 10,000 in number for a single account or master/dealer relationship.
Secondly, a large set of records should not be owned by a single user.
The record locking needs to be taken care by the users wisely.
With these three simple tips, you can not only avoid the data skew but also optimize the overall performance of a Salesforce CRM when designing or automating the business processed. We wish you luck for a successful CRM designing without any data skew in your next project!
I am William, the Salesforce Developer at JanBask IT Solutions providing most reliable cloud solutions tailored to specific business needs and requirements.