Skip to main content
New tool CRON Expression Builder — preview next run times before you schedule Apex. Open the builder →
Diagram illustrating how Salesforce Big Objects store and manage large volumes of data efficiently
Admin

What are Salesforce Big Objects? A Practical Guide

If you are trying to store millions of logs in a custom object, you are headed for trouble. Here is how Salesforce Big Objects handle massive datasets without tanking your org performance.

The short answer

Salesforce Big Objects store hundreds of millions or billions of immutable records without affecting org performance or standard data storage limits. They are built for large-scale historical archiving and event logging, and query performance depends entirely on the composite primary index you define up front.

Key takeaways Define a composite primary index of up to five fields, based on the filters you expect to query on, before you create a Big Object. Treat Big Object data as immutable and overwrite a record through its primary index, because triggers, workflow rules, and standard edit operations do not apply. Move massive audit logs and multi-year compliance archives to Big Objects so standard object governor and storage limits stay clear. Plan for external analytics platforms or custom Lightning web components, because Big Objects do not appear in standard Report Builder.

Getting real with Salesforce Big Objects

Ever had a client ask to store 500 million logs in a custom object? You know that's a recipe for disaster. That's where Salesforce Big Objects come in. They are built for the massive datasets that would otherwise tank your org performance and hit every governor limit in the book.

I've seen teams force historical data into standard objects just because they're comfortable with them. If you're looking at hundreds of millions of rows, you'll hit a wall fast. Salesforce Big Objects are for long-term storage where scale matters more than real-time updates. They handle billions of records without breaking a sweat.

The stuff that trips people up

These objects don't behave like the ones you're used to. They're immutable. That means no triggers, no workflow rules, and very limited DML. To change a record, you overwrite it using the same primary index. It's a different way of thinking about data.

When you're managing Salesforce large data volumes, you have to accept that Big Objects aren't for your daily transactional work. They're for the "write once, read occasionally" patterns like audit trails or forensic analysis. And don't expect to see them in the standard Report Builder either. You'll need other tools for that.

Data flowing from standard Salesforce records into a high-capacity Big Object storage structure.

Data flowing from standard Salesforce records into a high-capacity Big Object storage structure.

When to pull the trigger on Salesforce Big Objects

In my experience it comes down to the same scenarios every time. One is event logging. If you're tracking every single click or API call, a regular object will explode. Another is historical archiving. If you need to keep seven years of snapshots for compliance, this is your best bet.

Most teams get this wrong by not planning their index. You have to define a composite primary index of up to five fields. That index is the only way to query the data efficiently. If a field isn't in your index, you can't use it in a standard SOQL filter. It's that simple.

A standard example: EventLogFile

Salesforce gives you some of these out of the box. The most common one is EventLogFile, which powers Event Monitoring. It tracks things like logins, Apex executions, and URI clicks. Because this data gets huge fast, Salesforce stores it as a big object to keep it out of your regular data storage limits.

Typical fields you'll see in there include:

  • EventType: what happened, like a Login or an API call.
  • LogDate: when it happened.
  • LogFile: the actual data payload of the event.

Querying without the headache

For small sets, you can use standard SOQL if you follow the index rules perfectly. For the heavy scans, you'll want Async SOQL. It runs in the background and handles those massive queries far better.

SELECT Id, EventType, LogDate 
FROM EventLogFile 
WHERE EventType = 'API' 
AND LogDate >= 2024-01-01T00:00:00Z

Since this is asynchronous, you submit the query and then poll the status. It works a bit like asynchronous Apex limits: you trade immediate results for the ability to do much more work in the background.

One thing I always tell juniors: your primary index is everything. If you mess up the field order in your index, your queries will be useless. Think about how you'll search for the data before you even create the object.

Key takeaways for Salesforce Big Objects

  • Use them for millions or billions of records that don't need triggers.
  • Your query performance lives and dies by the composite primary index design.
  • Treat the data as immutable. Don't expect to do "Edit" and "Save" operations.
  • Use Async SOQL or the Bulk API to move large chunks of data without hitting limits.
  • You won't find these in standard reports, so plan for Tableau, CRM Analytics, or custom LWC displays.

Salesforce Big Objects are a specialized tool. They aren't a replacement for custom objects, but they save you when your data growth starts to outpace your storage budget. Just spend the extra time on your index design, because it's the one thing you really don't want to fix later.

Frequently asked questions

When should you use Salesforce Big Objects?

Use Big Objects when you need to store hundreds of millions to billions of records for event logging, audit trails, or historical archiving. They suit write-once, read-occasionally data rather than day-to-day transactional workflows.

How do you update records in a Big Object?

Big Objects are immutable and do not support standard edit operations, triggers, or workflow rules. To change a record, overwrite it by supplying data with the exact same composite primary index.

How do you query Salesforce Big Objects with SOQL?

Filter your SOQL queries on the fields defined in the composite primary index. Fields outside the primary index cannot be used in standard SOQL filter conditions.

Can you report on Big Objects in Salesforce?

No, Big Objects do not appear in the standard Report Builder. Use tools such as CRM Analytics, Tableau, or custom Lightning web components to display and report on Big Object data.

Newsletter

One email every Tuesday

New guides, tool updates, and the release-note changes that break things.

No spam. Unsubscribe in one click.

Comments

Loading comments...

Leave a Comment