Sql Server Billing is very incorrect
I have a resource group with a SQL Server and a SQL Server Database.
For my SQL Server Database, I have selected general purpose (most budget friendly), serverless, 1 max vcore 8GB allocated space. Under compute + storage it has an estimated storage cost / month as 1.6USD / month and Compute cost / vCore second = 0.000194 USD. However the estimated forecast cost for 1 month is 191.7USD.
Surely that is incorrect?
Regards,
Dean
-
Lakshma Reddy Vattijonnala 830 Reputation points • Microsoft External Staff • Moderator
Hi @Dejan Popovic I have shared the information about your issue. Let me know if it was helpful or please feel free to comment if you need further assistance,
Sign in to comment
3 answers
-
Lakshma Reddy Vattijonnala 830 Reputation points • Microsoft External Staff • Moderator
For Azure SQL Database serverless, the bill is often not just “max vCore rate × max size,” and the portal’s forecast can look surprising until you break down which meter(s) are driving it.
Why the forecast can be much higher than the numbers you’re seeing
For serverless Azure SQL Database, the total bill is the sum of:
- Compute (billed per second based on actual usage patterns and the serverless billing rules)
- Storage (billed monthly based on allocated/storage size characteristics of the tier)
Key points from Microsoft’s billing model:
- Compute is billed per second using the maximum of CPU used vs. memory used each second.
- If CPU/memory usage is below the minimum provisioned amount while the database is online, you can still be billed at the minimum.
- Memory is normalized into vCores for billing comparison (so memory usage can drive compute cost even when CPU looks low).
So even if your “Compute cost / vCore second” looks tiny, the database may be billing many vCore-seconds over the month depending on your workload and the minimums.
Also, the overall “estimated forecast” can include more than just compute/storage you initially focused on (for example, other SQL-related meters show up in Cost Analysis—depending on what’s enabled/configured).
What to do to confirm what’s driving the forecast
Microsoft recommends using Cost Management → Cost analysis to identify the exact meters/resources behind the estimate:
- Go to the resource group containing your Azure SQL Database
- Select Cost analysis
- View Accumulated costs
- (Optional but helpful) Set the chart to Service name
- Add a filter for Azure SQL Database
- Then use filters/grouping to find what’s driving the difference:
- Filter by “Meter category” / “Service name” to see if it’s Compute vs Storage vs other SQL-related meters
- If you can, group by Resource to see which specific resource/meter contributes most
This will tell you whether the forecast is being driven by compute billed minutes/seconds, storage, or something else.
How to sanity-check pricing for serverless
For serverless SQL DB, cost estimation depends on:
- serverless billing behavior (CPU vs memory, minimums)
- your workload pattern (active vs idle; auto-pause behavior)
- configured vCore min/max range
- storage characteristics
If you find the answer helpful, please click "upvote" and accept it. This will help others in the community with similar questions easily find the solution.
-
Erland Sommarskog 134.7K Reputation points • MVP • Volunteer Moderator
Forecasts for Serverless are inherently inaccurate, because it all depends on how you use the service. First you need to understand that when Serverless is paused it is rolled out and exists only disk, and in this state you pay only for storage. Once someone connects to it, it is rolled in and mounted on a server, and now you start to pay for compute.
Serverless is great for a database that you only use occasionally, like an hour a day and it is rolled out most of the day. It's a really bad option for a database that is always active, because the price for compute is higher for a provisioned general-purpose database. One risk with serverless is that you think you are not using it, but there is something that pings it every five minutes which prevents it from being paused. Keep in mind, it is the fact that it is mounted you pay for, not the actual CPU time you consume.
If you want something which is really budget-friendly, I recommend an S0 or S1 (i.e. a DTU-based model). They are really cheap. And, no, they are overly powerful, but if you are only learning and playing, they can still serve you well.
But going back to Serverless, it can be a great choice, if you understand the service. If you don't, it will be expensive.
-
AI answer
The forecast isn't necessarily incorrect. The key is that Azure Cost Management shows total expected monthly cost, not just the simple “rate × 1 vCore” number shown in the SQL blade.
Important points based on the provided context:
- Compute is billed per second of actual usage for serverless-style offerings, but the effective cost depends on:
- vCore usage over time
- Memory usage over time
- Minimum memory allocation while the database is online
- How long the database stays online before going idle and releasing compute
- Forecasts in Cost Management are based on historical usage, not just the configuration:
- Cost Analysis (Resources view) groups SQL databases under their parent server and shows all charges contributing to the total.
- If there has been recent heavy usage (for example, sustained vCore and memory consumption), Cost Management extrapolates that pattern forward for the month, which can produce a much higher forecast than the “per vCore-second” rate suggests.
- Storage and backup storage can add to the bill:
- Data storage is billed based on the maximum configured size.
- Backup storage is free up to 100% of the provisioned database size; any backup storage above that is billed separately.
- These components are included in the monthly forecast.
- How to validate what is driving the 191.7 USD forecast:
- In Cost Management → Cost Analysis, switch to the Resources view and locate the SQL server and its child database. This view groups related resources and shows the total cost per server, including database-level charges.
- Check which meters (compute vs storage vs other add-ons) are contributing most to the current month’s cost and forecast.
If the forecast still appears inconsistent with actual usage after checking the resource-level breakdown, open a Cost Management support request so that billing support can review the specific subscription and meters.
References:
AI-generated content may be incorrect. Read our transparency notes for more information. - Compute is billed per second of actual usage for serverless-style offerings, but the effective cost depends on:
