It seems like a couple of times a week I get a panicked message from a customer who saw the dreaded alert: “Your organization (tenant) is over capacity” in the Power Platform Admin Center. Sometimes they are over a little, and sometimes they are using 500% or more of their allocated capacity. Let’s chat about this shall we?
We still have a handful of customers on the “Old Model”, the combined “Extra Storage” SKU. If I recall it was $10 USD/GB… and people complained about that. Recently Microsoft changed from the “Additional Storage” model to a “Capacity” model. In the process they split the storage buffet into three entrées: Database Capacity, File Capacity and Log Capacity. They also changed the pricing… significantly. Additional Database Capacity will cost you $40/GB/Month, additional File Capacity goes for a mere $2/GB/Month, and additional Log Capacity comes in at $10/GB/Month. Truing up can be an expensive proposition.
What will happen?
The first concern of customers seeing this ominous alert is that their business applications will suddenly stop functioning. Clearly this would not be good for Microsoft’s business relationship with that customer. So nothing currently running will “stop”. However you may notice that will not be able to create new environments, or copy or restore environments, while you are over-capacity. It is not clear if there are any other things that may be happening like throttling your speed, etc., but regardless, you are out of compliance. So while not something you need to solve immediately, you do want to solve it. If you have an urgent issue like needing to copy or restore an environment while you are over capacity, you can request a 30-day extension.
Buying your way out
For some customers, the least expensive option is to simply buy your way out of capacity debt. We recently had a customer with about 100 Sales Professional licenses inquire whether moving to the Enterprise Sales licenses would be an option. Not a chance, in their case the cost was almost triple, and only got them halfway there.
So how much do you get?
Many Dynamics 365 customers have no idea how much storage capacity they have, or how they got it. You can get a better understanding in the Power Platform Admin Center.
Here is an example screenshot of a tough situation:
As you can see this customer is way over their allotment. On the right side you can see how they got their allotment, including their default capacities, additional capacity via additional user licenses (not all licenses include this), and any extra Capacity they may have purchased, all of which sum up to their totals. In this case this customer has quite a few users, but most are on Dynamics 365 “Professional” licenses, which add no capacity. We estimated their cost to true up by just buying the capacity needed with a small cushion would be about $3,300/month. Wow!
There are several things you can do to help this situation. First we’ll tackle the low-hanging fruit, that I can immediately see is their Log storage, which is about 700% over. Since log storage is not very expensive, their cost to get right-side up on this is not that much, about $160/month, so it is not worth having “our” team do anything. But on their own, they can delete some of their old logs, or if they need them, export them out to cold (cheap) storage. They can also look at “what” they are logging to make sure each item needs to be logged, they may have hit the ole “Check all” option when they set it up.
The next item to look at is File where they are about 422% over. Again, their cost to get right-side up on this is not that much, about $300/month. On their own they can run some advanced find queries and delete unneeded email and note attachments, and just pay the difference. The cost to do more, would not have an ROI.
Lastly, we come to the real problem… Database, where they are also about 435% over. This would be expensive to buy out of @$40/GB, about $3,000/month! This is an area worth having our team dig in and see what can be done… and we did.
Solutions and Addons
The first thing to understand is that your “Database” holds more than just “your” data. Any solutions you have installed also consume this, including the Dynamics apps themselves. Kind of like how your 16GB iPhone only has like 12GB available before you even touch it. It might seem like there is nothing you can do about this, but if you are not using all of the advanced features of your Dynamics 365 apps, you may want to try RapidStartCRM with it’s much smaller solution footprint.
Speaking of solutions, and the capacity they consume, you should definitely review any addon solutions you may have installed and are not using anymore. Just delete them. For those you need, make sure you are on the latest versions, as many ISV’s have made their code more efficient now that capacity is an issue. If you have some old addons, with no recent updates, you may want to consider switching them for more modern ones with similar capabilities. If you are stuck with an old addon for some reason, maybe hire a developer like us to do a code review. Again, the Capacity issue is recent, previously ISVs for addons did not really worry much about storage, so efficient code was not a priority.
Of course every time a new record, like a Contact for example, is added, all of the data entered into each of those fields is added to the database. So think about all of the records you have, not just the obvious ones like Accounts and Contacts, but also activities, etc. it creates a huge pile of data. Of that huge pile, your team is probably only engaging with a fraction of it on a daily basis. Before capacity was an issue, there was no reason not to keep 10 year-old emails, but now you have to think about it. The same goes for any “inactive” records. The first question is “Do I need this at all?”, if the answer is still “yes”, then the next question is “Do I need it to be in here?”. Probably not. It may make sense to archive that data to cold (cheap) storage. Bonus result: your system will run faster!
Some customers generate enormous volumes of “Transactional” data, often automatically imported via an integration. Do you need to see each of these transactions in your database, or would a summary of totals do the trick? If you do need to see it all, could it be moved to “colder” storage and accessed by your users via “Virtual Tables“.
When you import a csv or other data file into your Dataverse environment, like via data import in Dynamics 365, that excel or other file remains behind after it has been parsed and added as records. You can free up some space by deleting these import files, just make sure you don’t check to “delete all records imported” also.
Here’s another thing you can look at that could have an impact. If Quick Find lookups are configured for data that’s frequently used, this will also create additional capacity-hungry indexes in the database. Admin-configured Quick Find values can increase the size of the indexes based on:
- The number of columns chosen and the data type of those columns.
- The volume of rows for the tables and columns.
- The complexity of the database structure.
Because custom Quick Find lookups are created by an admin in the org, these can be user-controlled. Admins can reduce some of the storage used by these custom indexes by doing the following:
- Removing unneeded columns and/or tables
- Eliminating multiline text columns from inclusion
Bulk Delete Jobs
You can create bulk delete jobs for two things, first for the initial cleaning up, and second to help to keep clean. You can use bulk delete to clear out old records of all kinds initially, old emails or attachments, completed system jobs, etc. Afterwards, you can them be recurring, so they automatically clear this old data on your schedule.
All environments consume a minimum of 1GB… even if they don’t have a Dataverse database. So you should regularly review your list of environments in the Power Platform Admin Center, and remove any that are not being actively used. Even some that are being used, should be reviewed to make sure they are necessary. Be aware, that unless you have deactivated the capability, by default any user in your organization can create an environment. We frequently find environment “experiments” that were created, and abandoned by users, including users who are no longer with the organization! Note that Default, Production, and Sandbox environments are all counted for capacity, however Trial, Preview, Support, and Developer environments are not counted.
If after doing all of these things, you are still over-capacity, you may have no option but to buy more. Depending on your specific scenario, some or all of these steps may have significant to very little effect. But it’s definitely worth a try. Based on the potential expense, we saw a new business opportunity and recently launched puredata.estate. Maybe we can help you.