Azure SQL Managed Instance Next-Gen: Bring on the IOPS

If you’ve used Azure SQL Managed Instance General Purpose, you know the drill: to boost memory or I/O, you had to scale the whole instance, paying for extra CPU you might not need—and hoping the upgrade fixed the bottleneck.

It worked but wasn’t elegant and could be slow or awkward. Scaling sometimes took hours when time was of the essence.

The Next-Gen Azure SQL Managed Instance marks a major shift from the old model. It was way overdue.

What is Next-Gen MI?

Azure SQL Managed Instance Next-Gen is a major architectural upgrade that leverages Azure Elastic SAN to deliver improved storage performance. It delivers faster I/O, improved stability, and higher limits—supporting up to 500 databases, for example.

While the managed instance retains its familiar interface, its performance has improved considerably.

New feature – IOPS Slider

With Elastic SAN, you can directly set the I/O your instance needs. If your workload hits PAGEIOLATCH waits (meaning queries wait for disk reads), or log writes stall, or queries degrade under concurrency, it’s possible that you have hit an I/O ceiling (the system can’t handle more input/output per second).

Instead of paying for more storage or a larger SKU, we can now just increase IOPS with the Next-gen platform. This saves costs; previously, you had to add CPU or storage to increase throughput. Adjusting IOPS is also in place operation—no failover, so no outage.  Obtaining more IOPS used to need SAN tuning, new LUNs, performance tuning, or talking to your storage team. Now it’s a slider in the Azure portal.

Pro tip: If you’re currently on General Purpose and experiencing disk latency, increasing the database file size will give you higher IOPS, improving performance.

Costs

You get a default IOPS amount based on storage size. For example, 1 TB of storage includes 3,000 IOPS. Depending on the regional storage price per GB, 1 extra IOPS costs that price divided by 3. If storage is 0.115 per GB, 1 IOPS costs 0.038.

So, in this region, 1,000 extra IOPS equals $38/month ($0.038 per IOPS x 1,000).

$38 per month for an extra 1,000 IOPS?  Yes please.

Limitations

While this new IOPS capability is worth investigating, there is an upper limit you cannot exceed.  This ceiling is limited by the number of cores that you have, which I find unfortunate.   I have expressed to the MI team at Microsoft that, ideally, the number of IOPS should not be constrained by anything and that, if I want 8 cores and all the IOPS possible, I should be able to pay for them.

Currently, this capability is not possible.  I’m hopeful that this constraint will be removed sometime in the future. However, for now, the IOPS ceiling is 1600 IOPS per core.   You can do the math.

A Real-World Example

I helped a client move from on-premises to Azure using SQL Managed Instance. We began with General Purpose, but after scaling and hitting latency issues, switching to Next-gen brought immediate improvement.  This allowed them to –

  • Keep vCores where they are.
  • Add IOPS at minimal cost.
  • See immediate latency improvement.

All this took just a few clicks in the Azure portal to get my client a better solution.

Summary

Next-Gen SQL Managed Instance provides consistent reliability and enhanced performance, without incurring high costs.

  • Better granular control.
  • Increased flexibility.
  • Performance optimization is now both straightforward and cost-efficient.

This improved architecture provides database administrators with operational control similar to on-premises environments, integrated into a managed service.  I am glad that Microsoft is improving Azure SQL Managed Instance, and I hope to see continued progress in this direction.

Are you using MI currently?  Have you switched to Next-gen? If so, what was your experience?  Let me know in the comments!

© 2026, John Morehouse. All rights reserved.

Hey you! Leave me a comment and start a discussion!

This site uses Akismet to reduce spam. Learn how your comment data is processed.