You opened the Power Platform Admin Center, the database storage gauge is orange, and your inbox has three “cannot save” tickets. Here is the reduction playbook in priority order.
Understand which storage is the problem
Dataverse splits capacity into Database, File, and Log. The headline gauge is misleading. Click in to see which is over.
- Database: row data, indexes, audit table.
- File: file column attachments, note attachments.
- Log: audit logs and plugin trace logs.
Each has a different reduction lever.
Database: kill the audit table first
The auditbase table is the largest table in 80% of stressed environments. Audit retention is environment-wide, not per-table. Reduce the retention from the default to 90 days for non-regulated environments.
Power Platform Admin Center -> Environments -> Settings
-> Auditing -> Audit retention period -> 90 days
Then run a Bulk Delete to purge old audit rows. Storage drops within 24 hours.
Database: deactivate completed BPF instances
As covered separately, BPF tables grow silently. Find them via Solutions Explorer or via this query:
<fetch>
<entity name="entity">
<attribute name="logicalname" />
<filter>
<condition attribute="logicalname" operator="like" value="%process%" />
</filter>
</entity>
</fetch>
Bulk deactivate BPF instances older than 12 months for processes where stage history is not regulatory.
File: triage attachments
The annotation (Note) and activitymimeattachment tables typically dominate file storage. Move attachments to SharePoint via the Dataverse SharePoint integration. Existing notes can be migrated with a Power Automate flow that moves the binary, replaces the note with a link, and clears the documentbody.
Log: trim plugin trace logs
plugintracelog retains rows based on the trace setting. Set Plugin and Custom Workflow Trace Settings to “Off” or “Exception” in production. “All” is for active debugging only and balloons log storage.
Bulk Delete is your friend
Bulk Delete jobs run asynchronously, respect security, and can be scheduled monthly. Build one for each large junk table:
- Old
emailrows withstatecode = 1andactualend < addmonths(today, -24). - Closed
incidentrows older than retention policy. - Completed
workflowlogrows older than 30 days.
When you genuinely need more
Capacity add-ons exist and they are not cheap. Buy them only after you have actually run the cleanup. Most environments recover 30-50% of database storage with audit and BPF cleanup alone.
What to do this week
Pull the top 20 tables by row count via the storage capacity report. Anything not on your business map is a cleanup candidate.