Salesforce is known for its powerful platform, but performance can take a hit when working with large datasets. This is where Skinny Tables come into play. They’re a Salesforce-supported performance optimization feature that helps speed up reports, dashboards, and queries—especially in data-heavy orgs.
🔍 What is a Skinny Table?
A Skinny Table is a custom, read-only table maintained by Salesforce. It contains a subset of fields from a standard or custom object—indexed and denormalized to avoid joins and speed up queries.
-
Managed internally by Salesforce
-
Updated near real-time with the source object
-
Limited to 100 fields per table
-
Fields must be of certain data types (e.g., no long text, rich text, etc.)
📘 Use Case: Slow Report on Opportunities
Problem: A report filtering on multiple Opportunity fields (e.g., StageName
, Amount
, OwnerId
, Custom_Field__c
) is running slow due to large volume (~10M rows) and non-indexed filters.
Solution: Create a skinny table with just the critical fields used in the report filter and display.
Result: Queries now pull from a smaller, indexed table with no joins—improving performance drastically.
🛠 How to Use Skinny Tables
You cannot create skinny tables via UI or Apex. You must raise a Salesforce Support case with:
✅ Best Practices
-
Use only when needed
Ideal for high-volume objects and slow queries. Avoid overuse—each skinny table adds overhead to SFDC's backend.
-
Pick frequently used fields
Focus on filter and output fields. Avoid large text, formula, or lookup fields.
-
Test before and after
Benchmark SOQL or report runtime to validate the improvement.
-
Be aware of limitations
-
Doesn’t support sandbox refresh automatically
-
No support for all field types
-
Changes require support ticket
-
Combine with other optimizations
Skinny tables work well alongside custom indexes and selective queries.
✅ Steps to Enable:
-
Open a Salesforce Support Case
-
Case Details to Provide:
-
Salesforce Support Review:
-
They’ll validate field compatibility
-
Implement the skinny table on backend
-
Provide confirmation once it’s live
-
Test & Monitor:
🧠 Pro Tip
You can use Query Plan Tool in Developer Console to identify whether a query is selective—and whether skinny tables or custom indexes could help.
📌 Final Thoughts
Skinny tables are a powerful lever for performance, especially in data-intensive orgs. Use them strategically, monitor their impact, and pair them with indexing and query optimization for maximum benefit.