How to Solve Storage Capacity Issues in Dynamics 365 CRM
As a Dynamics 365 Solution Specialist, I often see clients encounter storage capacity issues in Dynamics 365 CRM. System administrators or IT leaders will first notice these capacity issues when their system slows down, or they receive a notification about database capacity.
Although you can solve the problem by purchasing additional storage or licenses, in many cases, you can instead solve it by carefully removing unneeded data.
However, it’s vital to ensure that you’re not accidentally getting rid of important, useful data when fixing storage problems. In this article, I’ll walk you through the basic process I use to safely solve storage issues without purchasing extra licenses or storage.
Table of Contents
- How Do I Know if I Have a Storage Capacity Problem?
- How to Fix D365 CRM Storage Capacity Problems in a Dev Environment
- How to Fix D365 CRM Storage Capacity Problems in a Production Environment
- Automating Data Removal to Solve Storage Capacity Issues for the Long Run
Note: There are now five different Dynamics 365 apps that serve various CRM needs, including Dynamics 365 Sales, Dynamics 365 Customer Service, and more. You may also see these products referred to as “Customer Engagement” or “CE” apps.
How Do I Know if I Have a Storage Capacity Problem?
The most obvious sign of a storage capacity problem is that your system admin will receive a notification saying something like one of the following:
- “Your organization (tenant) is over capacity. This will impact certain environment operations.”
- “Your tenant is nearing or exceeding its capacity limit.”
The other major sign, which is more likely to be noticed by ordinary users of your system, is that the system will slow down. I usually see a system in this situation take 10-15 seconds to load each page, which can be very frustrating for your team!
If your Dynamics 365 CRM has become very slow, that may be a sign you have a database capacity problem.
How to Fix D365 CRM Storage Capacity Problems in a Dev Environment
If you have a development environment, there will often be extra, unneeded data left behind from your implementation or other projects. Removing this extra data usually solves capacity issues.
However, before you do so, you should make sure to speak to your development team lead and ask them whether they need to retain the data for testing or historical reference. It’s best to have this conversation in a documented meeting or email thread to ensure everyone is aligned on what data can be safely removed. Always create a backup before proceeding with any data deletion.
With that done, here are the steps for how to remove the unneeded data in a dev environment.
Step 1: Navigate to Settings > Data Management > Bulk Record Deletion
Access the Power Platform admin center and select your environment, then go to Settings and find the Data Management section.
Step 2: Click “New” to create a new job inside Bulk Record Deletion
This will launch the Bulk Record Deletion Wizard, where you can specify which records to delete.
Step 3: Define your search criteria
Select the entity type (like Contact, Account, or custom entities) and set up filters to target only the test data. Be very specific with your criteria to avoid deleting production data.
Step 4: Review and schedule the deletion
Preview the records that will be deleted and schedule the job to run during off-hours to minimize system impact.
Step 5: Monitor the deletion job
Check the system jobs area to ensure the deletion completes successfully and review any error logs.
Note: Always test your deletion criteria on a small subset first before running the full deletion job.
How to Fix D365 CRM Storage Capacity Problems in a Production Environment
If you don’t have data in a development environment, or if removing data from development isn’t sufficient to solve your storage problem, you can also remove data from your production environment. However, it is much more important to be thorough, careful, and transparent with other stakeholders in determining what data to remove.
Schedule a formal meeting with key stakeholders, including IT leadership, business users, and compliance teams. Start by asking if they need to retain the data for regulatory compliance or other purposes. Consider regulatory requirements like GDPR, HIPAA, or industry-specific retention policies that may apply to your organization. Document all decisions in writing and get explicit approval before proceeding.
Here are the steps I recommend you follow for that decision-making:
Step 1: Audit your current data usage
Go to Power Platform admin center > Analytics > Microsoft Dataverse to find which entities are consuming the most storage space. It’s best to start by looking at the list of environments to identify where those high-usage entities are.
Step 2: Identify candidates for deletion
Look for entities with large volumes of old records, such as system jobs older than 30 days, email attachments, or inactive records that are no longer needed.
Step 3: Create data retention policies
Before deleting, establish clear policies about how long different types of data should be retained based on business and compliance requirements.
Step 4: Export data for backup
Use the Data Export Service or Power Platform dataflows to create backups of data you’re planning to delete, just in case it’s needed later.
Step 5: Execute controlled deletion
Use bulk deletion jobs with very specific criteria, running small batches first to ensure the process works as expected.
Critical consideration: Never delete financial transaction data, customer master data, or any records that may be required for compliance without explicit legal and business approval.
Automating Data Removal to Solve Storage Capacity Issues for the Long Run
While removing data using the steps above will solve the Dynamics 365 CRM capacity problem for you temporarily, the problem will eventually recur when your database “fills up” again during normal use, testing for updates, etc. That’s why Encore often helps our clients by automating data removal.
For instance, we can set rules to keep all your customer-transaction data for 3 years, after which it’s deleted.
To set up a basic bulk deletion rule, you can navigate to Settings > Data Management > Bulk Record Deletion and create recurring deletion jobs.
Step 1: Create a new bulk deletion job
Go to Settings > Data Management > Bulk Record Deletion and click “New.”
Step 2: Set up entity and date-based criteria
Choose your target entity (like Email, Activity, or System Job) and set criteria like “Created On older than 90 days.”
Step 3: Configure recurrence
Set the job to run automatically on a schedule, such as monthly or weekly, depending on your data volume.
Step 4: Test with a small subset
Before enabling the recurring job, run it once with limited criteria to ensure it works correctly.
Step 5: Enable and monitor
Activate the recurring schedule and regularly check the system jobs to ensure it’s running successfully.
Important note: System jobs and email tracking records are often good candidates for automated cleanup as they accumulate quickly but have limited long-term value.
To fit more complex needs you may have for compliance, etc., across multiple types of data, you can also have automated deletion rules with more advanced criteria.
For instance, you might set up rules that delete draft email records after 30 days but retain sent emails for 7 years, or automatically remove system jobs and workflow logs after 90 days while preserving audit logs for the required compliance period.
However, there are many subtleties and gotchas once you get into this level of complexity with the system, and the consequences of a mistake in automated deletion can be significant. So, if you want to explore that sort of need, you should work with a trusted Dynamics 365 CRM Partner like Encore Business Solutions.
At Encore, we provide training, change management, and expert support with Dynamics 365 as well as implementations.