A company has a suite of 20 e-commerce applications, each with its own SQL Server database. The databases vary in size from 5 GB to 100 GB and have unpredictable usage patterns with bursty peaks. The company wants to migrate to Azure SQL Database to benefit from built-in high availability and automatic backups. They need to minimize costs by only paying for the resources each database actually uses, and they want to avoid over-provisioning for peak loads. Which Azure SQL Database deployment option should they choose?
Azure SQL Database Elastic Pool is the correct choice because it lets all 20 databases share a single pool of eDTUs or vCores, with adjustable per-database minimum and maximum limits. This avoids over-provisioning each app separately and smooths out intermittent usage spikes across tenants. You pay only for the pooled resources actually allocated, not for 20 individually sized databases, which is exactly what unpredictable e-commerce workloads need.
Why this answer
Azure SQL Database Elastic Pool is the correct choice because it allows multiple databases to share a fixed pool of resources (DTUs or vCores), enabling cost efficiency by pooling and reallocating resources across databases with unpredictable, bursty usage patterns. This avoids over-provisioning for peak loads while still providing built-in high availability and automatic backups, as each database in the pool benefits from these features without needing individual resource reservations.
Exam trap
The trap here is that candidates confuse the Serverless compute tier (which auto-pauses for cost savings on a single database) with the Elastic Pool (which shares resources across multiple databases), leading them to choose Serverless for cost minimization without recognizing the need for resource pooling across 20 databases.
Why the other options are wrong
The Serverless compute tier is designed for a single database with intermittent usage, but the question involves 20 databases with bursty peaks. An Elastic Pool shares resources across databases, which is more cost-effective for multiple databases with varying peak times than provisioning each database individually with Serverless.
Azure SQL Managed Instance is designed for lift-and-shift migrations requiring full SQL Server instance-level features (e.g., SQL Agent, cross-database queries) and does not offer the cost-sharing, per-database resource pooling that Elastic Pools provide. It would require over-provisioning for peak loads and does not minimize costs for 20 separate databases with bursty, unpredictable usage.
Hyperscale is designed for very large databases (up to 100 TB) and high transaction throughput, not for managing multiple smaller databases with bursty, unpredictable usage patterns. It does not provide the cost-sharing benefits of an elastic pool, leading to over-provisioning and higher costs.