Blog Post

SQL Server Blog
2 MIN READ

Resource governor - a new beginning

Dimitri_Furman's avatar
Nov 18, 2025

Executive summary

In addition to increased CPU and memory limits, we are making another change to benefit customers using the SQL Server Standard edition.

Starting with SQL Server 2025, resource governor, previously an Enterprise edition feature, is also available in the Standard edition.

A powerful tool

Resource governor has been a part of SQL Server for more than 15 years. It’s a powerful, full-featured tool that improves reliability when multiple applications or users share resources on the same SQL Server instance.

We rely on Resource Governor to isolate workloads on our SQL Server instances by controlling CPU and memory usage. It helps us ensure that the core of our trading systems remains stable and runs with predictable performance, even when other parts of the systems share the same servers.

- Ola Hallengren, Chief Data Platforms Engineer at Saxo Bank and a Data Platform MVP

Yet when we ask customers if they use resource governor, a frequent answer is "We can't. We are on Standard edition." Indeed, ever since its initial release, resource governor has been an Enterprise-only feature. That made it less known and less commonly used than it deserves.

We heard and acted on your feedback. Starting with SQL Server 2025, resource governor is available in both Standard and Enterprise editions, with identical capabilities. This includes the respective Developer editions as well.

In Azure SQL Managed Instance, resource governor is already available in all service tiers.

What can it do?

Here are just some of the things you can accomplish using resource governor:

  • Limit or reserve CPU bandwidth and IOPS for a workload.
  • Limit the size of query memory grants or reserve memory for query processing.
  • Limit the total number of running requests (queries) for a workload.
  • Abort query batches that exceed a specified amount of CPU time.
  • Set a hard cap on the maximum degree of parallelism (MAXDOP) for queries.
  • (New in SQL Server 2025) Limit the amount of tempdb space a workload can use (blog | doc).

Whether you are on Standard or Enterprise edition, if you haven't used resource governor yet, see what it can do for you.

To help you learn, we have a new step-by-step guide with best practices and examples, from simple to more advanced. There is also a separate guide focusing on the new tempdb space governance feature.

Conclusion

With this change, customers on Standard edition get a powerful enterprise-grade tool to control resource contention and improve reliability of their SQL Server environments. We encourage you to learn more about resource governor to understand the full range of its capabilities.

Have questions or feedback? Post a comment on this blog post, an idea at https://aka.ms/sqlfeedback, or email us at sql-rg-feedback@microsoft.com.

Let’s make resource governor a standard (😊) tool in your toolset!

 

Updated Nov 23, 2025
Version 2.0

5 Comments

  • Erik_Darling's avatar
    Erik_Darling
    Copper Contributor

    My favorite thing to use Resource Governor for is to cap per-query memory grants, but...

    It doesn't seem like there's a way to reduce the global limit on how much total memory requests can use as a whole (~75% of max server memory). MIN and MAX_MEMORY_PERCENT don't seem to quite get there. 

    On SQL Servers with large amounts of memory (which I realize isn't a problem in Azure PaaS 😃), 75% could represent quite a large chunk of buffer pool stolen away.

    There are times where I'd rather hit RESOURCE_SEMAPHORE earlier and have queries wait, to not have to rebuild useful buffer pool data from dreaded disk repeatedly. Waiting on PAGEIOLATCH is far more frustrating, especially when these queries are hitting a similar set of tables/indexes.

    • Dimitri_Furman's avatar
      Dimitri_Furman
      Icon for Microsoft rankMicrosoft

      So you want a TOTAL_MAX_MEMORY_GRANT_PERCENT for each workload group? Or a single server-level config for max grant memory?

      Have you seen cases where limiting individual query grants, either with hints or with RG, would still consume too much total grant memory?

      • Erik_Darling's avatar
        Erik_Darling
        Copper Contributor

        I suppose it's tempting to make it a server-level setting alongside min/max server memory, but I'm not sure if I'd want this one to be so accessible. This could be a pretty powerful footgun. It seems like a more specialized configuration change that I'd expect someone to make alongside something like MAX_MEMORY_GRANT_PERCENT. 

        But yes, if someone is hitting RESOURCE_SEMAPHORE, and you drop MAX_MEMORY_GRANT_PERCENT down to 10%, you will generally increase concurrency and allow more queries to run, ask for smaller grants, but still end up hitting the ~75% total.

        Instead of three queries running and getting ~25% a piece, you end up with 8-10 queries running simultaneously with the lower grants. RESOURCE_SEMAPHORE is gone, but so is most of your buffer pool (assuming the grants are fully utilized).