Object Relationships, Bulk Loading, and Sharing Recalculation

Choices that you make when designing your data models can have a major impact on sharing performance when data is loaded, updated, or transferred between users. Understanding how Salesforce handles the relationships between objects and protects data integrity during updates can help you optimize the performance of data operations.

  • Implicit Sharing

    The sharing capabilities of the Salesforce Platform include a wide variety of features that you can use to explicitly grant access to data for individuals and groups. In addition to these more familiar features, there are a number of sharing behaviors that are built into Salesforce. This kind of sharing is called implicit because it’s defined and maintained by the system to support collaboration among members of sales teams, customer service representatives, and clients or customers.

  • Parent-Child Data Skew

    Implicit sharing behaviors simplify the task of managing security for users. They handle the most common data access use cases without requiring additional roles, groups, and sharing rules to be configured. However, like data ownership skew, some parent-child configurations can slow the performance of large data loads and updates, and sometimes even of single-record operations.

  • Record-Level Locking

    Many customers regularly upload large amounts of data to the service, and maintain integrations with other systems that update their data in scheduled batches or continuously in real time. Like other transactional systems, Salesforce employs record-level database locking to preserve the integrity of data during these updates.

  • Takeaway: Tuning Data Relationships and Updates for Performance

    Understand the performance characteristics of the various maintenance operations that you’re performing and always test substantial data uploads and changes to object relationships in a full copy sandbox that’s been recently refreshed so you know what to expect.