Azure SQL: Single DB vs. Elastic Pool

Choosing between a Single Database and an Elastic Pool in Azure SQL is one of the most consequential decisions an architect can make. It isn’t just a technical configuration; it is a financial strategy.

If you choose incorrectly, you either end up with a performance hit or a massive monthly bill for resources that are literally doing nothing. Here is how to navigate the choice with SQL Database.

In this blogpost we will understand more about when to use the Single database and when to use Elastic pool.

Table of Contents

The Core difference SQL DB vs Elastic Pool

At their heart, these two models represent two different ways of managing compute (CPU/RAM) and storage.

Single Database:

Think of this as a private estate. You provision a specific amount of power (DTUs or vCores) dedicated exclusively to one database. It doesn’t matter if your app is idle or under heavy load; those resources belong to that database alone.’;

Example:

Imagine you provide a dedicated company car to each of your top 5 sales executives.

  • The Setup: Each executive has their own car parked in their own driveway.
  • The Benefit: If Exec A needs to drive to a meeting at 3:00 PM, the car is guaranteed to be there. They don’t have to check if Exec B is using it. This is Resource Isolation.
  • The Downside: For 20 hours a day, those cars sit in driveways doing absolutely nothing. You are paying for the lease, the insurance, and the maintenance on 5 separate vehicles, even though they are mostly idle.
  • Best For: Your “VIP” applications. If the app is critical and needs 100% availability and power at any second, give it its own “car.”

Elastic Pool:

Think of this as a luxury apartment complex. You buy a large “block” of resources (eDTUs or vCores) and share them among many databases. When one database is busy, it borrows power from the pool; when it’s sleeping, its neighbors can use that power.

Example: The “Elastic Pool” Example: The Pizza Delivery Fleet

Imagine you own a pizza shop with 20 delivery drivers, but you only have 5 shared delivery bikes.

  • The Setup: You don’t buy 20 bikes (which would be expensive). Instead, you have a “pool” of 5 bikes at the shop.
  • The Benefit: Your drivers don’t all deliver at the same time. Driver 1 goes out at 6:00 PM; Driver 2 goes out at 6:15 PM. As soon as Driver 1 returns, Driver 3 takes that same bike. You are supporting 20 people’s work using only 5 bikes’ worth of investment. This is Cost Efficiency.
  • The Downside: If a massive “Super Bowl” event happens and all 20 drivers try to leave at once, you have a problem. There aren’t enough bikes. This is the “Noisy Neighbor” effect – one driver (database) might have to wait because others are using the shared resources.
  • Best For: SaaS companies or apps with “bursty” traffic. If you have 100 small customers who only use the database during their specific local business hours, they can share one “fleet” of resources.

When to use Single Database

A Single Database is the best choice when your workload is predictable, massive, or isolated.

High, Consistent Utilization:

If your database is the engine of a global e-commerce site that sees steady traffic 24/7, an elastic pool offers no benefit. Since the database is always “using” its resources, there’s nothing left to share. You are better off with a dedicated tier where you aren’t paying the slight “sharing premium” that pools sometimes carry.

Absolute Performance Isolation

In a pool, a “noisy neighbor” (another database running a massive, unoptimized report) can technically impact others if you haven’t set strict resource caps. For mission-critical Tier-1 applications where a 100ms latency spike is a disaster, the dedicated isolation of a Single Database is safer.

Serverless Requirements

If you have a single database that is idle for long periods (e.g., a dev environment used only 8 hours a day), the Serverless tier of a Single Database is unbeatable. It can “pause” itself, meaning you pay $0 for compute while it’s not in use. Elastic pools do not currently support “auto-pause” for the entire pool in the same way.

Read the Microsoft Documentation at What is the Azure SQL Database service? – Azure SQL Database | Microsoft Learn

When Elastic Pool is the Winner

Elastic Pools are designed for the SaaS (Software as a Service) model or enterprises with dozens of smaller, “bursty” databases.

The “Bursty” Workload

Imagine you provide software for 100 different dental offices. Each office has its own database. Most of the day, these databases are idle. However, at 8:00 AM, five of them might run morning reports. In a Single Database model, you’d have to pay for 100 separate “S3” instances to handle those morning spikes. In a pool, you might only need the power of 10 instances shared across all 100.

Administrative Simplicity

Managing 500 single databases means managing 500 different scaling settings. With an Elastic Pool, you manage one resource object. You scale the pool up, and all 500 databases instantly have more breathing room.

Cost Complications: The Hidden Math

The pricing of Elastic Pools can be deceptive. On a “per-unit” basis, a pool resource (eDTU) is roughly 1.5x more expensive than a single database unit (DTU).

The Math of Savings:

Single Database: 20 databases at $15/month each = $300/month.

Elastic Pool: One pool that handles all 20 databases might cost $220/month.

Even though the “pool power” is more expensive per unit, you are buying fewer total units because you know your 20 customers won’t all hit the “Generate Report” button at the exact same second.

The vCore vs. DTU Factor

DTU Model: Best for simplicity. It’s a “t-shirt size” approach (Basic, Standard, Premium).

vCore Model: Best for transparency and those moving from on-premises SQL Server. It allows you to use the Azure Hybrid Benefit, which lets you swap your existing SQL Server licenses for a massive discount (often up to 40-50%).

Cost Control Strategies

To keep your Azure bill from spiraling, implement these three guardrails:

Set Per-Database Caps

Inside an Elastic Pool, always configure the Min/Max resource settings.

  • Max: Prevents one rogue query in a test database from eating 100% of the pool’s CPU.
  • Min: Guarantees that even if the pool is busy, your most important databases always have a small “reserved” slice of power.

Monitor the “Density”

The “sweet spot” for a pool is usually when you have at least 15-20 small databases or 2-5 medium ones. If you only have two databases and they both peak at the same time (e.g., both run backups at midnight), a pool might actually cost you more than two single databases.

Use Elastic Jobs

Instead of running maintenance scripts against each database individually, use Elastic Jobs. This allows you to run a T-SQL script across the entire pool at once. This reduces the “administrative cost” (human hours) which is often the most expensive part of cloud management.

FeatureSingle DatabaseElastic Pool
Best ForHigh-traffic, steady appsMulti-tenant SaaS, many small apps
ScalingIndividual controlShared pool-wide control
PricingLower per-unit costHigher per-unit, lower aggregate
IsolationPerfectShared (Risk of noisy neighbors)
Idle SavingsGreat (via Serverless auto-pause)Moderate (Shared capacity)

Final Verdict

If you are starting a new project with one database, start with a Single Database (Serverless). As soon as you find yourself spinning up a third or fourth database for different clients or modules, it is time to run a cost analysis on an Elastic Pool. Read more blogposts at CloudNerchuko.

I also run a YouTube Channel at Cloud Nerchuko YouTube channel and if you like my content, hit the Subscribe button and share it with your friends.

Disclaimer: This content has been written and refined using Gemini, with additional human editing to ensure clarity and quality. It reflects significant manual effort and careful review to deliver accurate, well‑crafted sentences.

Leave a Comment