Using Custom SQL Pools to balance performance and cost in Fabric Data Warehouse
One of the most common questions I hear from customers as they move to an allocation-based billing model is:
"What levers do I actually have if I want to control how many resources my workloads consume?"
Many customers are looking for a way to prevent specific workloads from scaling aggressively and consuming more resources than they're comfortable with. That's where Custom SQL Pools can help significantly.
Custom SQL Pools, currently in preview and soon to be generally available, were designed to give customers more control over how resources are allocated across workloads. Their primary purpose is workload isolation and governance, but with allocation-based billing, governing resource allocation can have a direct impact on overall consumption.
Understanding the tradeoff
Every workload wants resources.
Your Power BI dashboards want low latency. Your ETL workloads want throughput. Your ad hoc analysts want concurrency.
Without workload governance, multiple workloads can compete for the same resources and can scale aggressively when they become active. While that's desirable for some latency-sensitive workloads, customers often want different workloads isolated from one another. A business-critical Power BI dashboard may require priority access to resources, while an ETL process may be allowed to run longer in exchange for consuming fewer resources. Custom SQL Pools provide those isolation boundaries and governance controls, allowing customers to make intentional performance versus consumption tradeoffs.
A simple example
Imagine a bursty reporting workload. Without a Custom SQL Pool, a query might:
- Scale to 10 vNodes.
- Run for 10 seconds.
- Be billed based on those 10 allocated vNodes during the allocation interval.
Now imagine that same workload is assigned to a Custom SQL Pool limited to 50% of the warehouse resources.
The query might:
- Scale to only 5 vNodes.
- Run for 20 seconds instead of 10.
- Be billed against a smaller allocated resource footprint.
The query took longer to complete, but it consumed fewer allocated resources.
In other words:
You're trading performance for lower resource allocation. For many workloads, that tradeoff may not make sense. For some workloads, it absolutely does.
The real-world scenario
Numerous customers use Custom SQL Pools effectively to control how resources are allocated to their workloads.
One customer had a long-running ETL process that wasn't latency sensitive. For this customer, they didn't care whether the load finished in 20 minutes or 30 minutes.
What they did care about was controlling how aggressively the workload consumed resources. They used SQL Pools to restrict the throughput available to that ETL process, effectively smoothing resource usage over a longer period of time. The workload ran longer, but consumed resources at a more controlled rate to further utilize the 24-hour smoothing behavior of background operations.
That's a great example of where workload governance and consumption governance become closely related.
Good Candidates for SQL Pools
Custom SQL Pools are particularly useful when you have workloads that:
- Are not latency sensitive.
- Can tolerate longer runtimes.
- Generate large bursts of activity.
- Compete with other workloads for resources.
- Need more predictable resource consumption.
Examples include:
ETL and Data Loading
Nightly data loads often care more about successful completion than finishing a few minutes faster.
Restricting resource allocation may be a perfectly reasonable tradeoff.
Background Processing
Data preparation, maintenance operations, and other non-interactive workloads can often run with fewer resources.
Power BI Reporting
Many organizations want to ensure reporting workloads cannot consume all available warehouse resources during business hours.
Using Custom SQL Pools to allocate a fixed percentage of resources to reporting workloads provides predictable behavior while preventing contention with other workloads.
What Custom SQL Pools are not
It's equally important to be clear about what SQL Pools do not do.
They are not:
- A spending limit.
- A monthly budget cap.
- A mechanism to stop charges after a threshold.
- A "$100/month maximum" control.
Instead, they serve as guardrails that define the maximum share of warehouse resources each workload can access. While they are not a cost optimization feature in themselves, the governance they provide can indirectly affect overall consumption.
Looking ahead
We're continuing to invest in workload management capabilities.
A common ask we hear is for resource governance to follow the identity rather than the application. For example, a customer may want executive reporting users, production service principals, or critical business processes to receive different resource allocations than ad hoc analyst workloads.
Identity-based classifiers are one example of where we're headed, but the broader goal is to give customers more flexibility in how workloads are governed. We're also working toward making the built-in workload boundaries configurable, allowing customers to adjust resource allocation between the default SELECT and NONSELECT workload groups without needing to define custom classifiers. For customers that simply want different resource allocations for reporting and ingestion workloads, this provides a simpler path to workload governance.
Ultimately, the goal is to give customers more explicit control over how resources are allocated and governed, making it easier to align resource allocation with business priorities while managing performance and consumption in a predictable way.
Takeaway
Custom SQL Pools is primarily a workload management feature, not a cost-control feature. However, in an allocation-based billing model, governing resource allocation and governing consumption become closely related.
If you're willing to let a workload run a little longer, Custom SQL Pools can provide a practical mechanism for reducing the resources that workload is allowed to consume.
For many customers, that's exactly the lever they're looking for. Get started with Custom SQL Pools today! Learn more in the documentation: Configure Custom SQL Pools in the Fabric Portal.
Published on:
Learn moreRelated posts
TMDL View on the web: Edit semantic models as code in your browser (Preview)
TMDL View on the Web is a feature in Power BI that enables developers to view and edit semantic models as code directly in the browser using T...
Deep dive into conditional formatting for lines and legends
Bring your Power BI reports to life with dynamic conditional formatting for lines and legends that stays consistent and updates automatically ...
Power BI June 2026 Feature Summary
This month, we’re continuing to focus on making every day work a little easier—whether that’s building reports, modeling data, or just getting...
Deep dive into modern visual defaults and formatting your entire report (Preview)
Power BI's modern visual defaults and new Customize theme experience enable report authors to centrally manage colors, typography, visual styl...
Power BI July 2026 Feature Summary
Welcome to the July 2026 Power BI update!This month, we're introducing new capabilities across reporting, modeling, mobile, and embedded analy...
Bringing Power BI Insights to Every Copilot User
The future of Power BI and Copilot starts by meeting users where they already work. We’re bringing trusted Power BI answers into Microsoft 365...
Deep dive into Power BI reporting with the new date picker slicer option (Preview)
Power BI’s new date picker slicer helps report authors set dynamic default date ranges while giving viewers flexible, easy ways to explore dat...
Microsoft named a Leader in the 2026 Gartner® Magic Quadrant™ for Analytics and Business Intelligence Platforms
We’re proud to share that Microsoft has once again been named a Leader in the 2026 Gartner® Magic Quadrant™ for Analytics and Business Intelli...
Deep dive into the Shape Map in Power BI (Generally Available)
Discover how the Shape Map visual (Generally Available) in Power BI helps you bring custom geographic boundaries, flexible map formats, and da...