Azure SQL — Types & Options
Overview of Azure SQL Options
Azure provides three main ways to run SQL workloads in the cloud, each targeting different migration and management needs:
Azure SQL Family
├── Azure SQL Database → Fully managed, cloud-native (PaaS)
│ ├── SQL Databases
│ ├── Hyperscale Databases
│ └── Elastic Pools
├── Azure SQL Managed Instance → Near 100% SQL Server compatibility (PaaS)
│ ├── SQL Managed Instances
│ └── Instance Pools
└── SQL Server (IaaS) → Full control on Virtual Machines
├── SQL Server Instances
└── SQL Server on Azure VMs
1. Azure SQL Database
Type: Platform as a Service (PaaS) Best For: Modern cloud-native applications
A fully managed relational database service where Azure handles all infrastructure, patching, backups, and HA automatically.
1a. SQL Databases
- The most common Azure SQL option
- Single database with its own dedicated resources
- Azure manages the OS, engine, backups, and failover
- Supports latest SQL Server features
| Feature | Detail |
|---|---|
| Management | Fully managed by Azure |
| Compatibility | Subset of SQL Server features |
| Scaling | Manual or Auto-scale (serverless) |
| Use Case | New cloud-native apps, SaaS apps |
Compute Tiers:
| Tier | Description |
|---|---|
| Provisioned | Fixed resources allocated, billed per hour |
| Serverless | Auto-scales compute, pauses when idle, billed per use |
1b. Hyperscale Databases
- Designed for very large databases (up to 100 TB+)
- Decouples storage and compute — scale independently
- Fast backups and restores regardless of data size
- Supports multiple read replicas for scale-out reads
| Feature | Detail |
|---|---|
| Max Storage | 100 TB+ (auto-grows) |
| Backup | Near-instantaneous (snapshot-based) |
| Read Scale-Out | Up to 4 named replicas |
| Use Case | Large OLTP workloads, data-heavy apps |
1c. Elastic Pools
- A shared pool of resources (eDTUs or vCores) across multiple databases
- Databases in a pool share compute & storage but have their own data
- Cost-effective when databases have variable, unpredictable usage patterns
How It Works
Elastic Pool (e.g., 100 vCores shared)
├── Database A (using 40 vCores right now)
├── Database B (using 10 vCores right now)
├── Database C (using 5 vCores right now)
└── Database D (idle)
- When A is busy, B/C/D use fewer resources — and vice versa
- You pay for the pool, not each DB individually
| Feature | Detail |
|---|---|
| Resource Sharing | Yes — shared eDTUs/vCores |
| Cost Model | Pay per pool, not per DB |
| Max DBs per Pool | Up to 500 |
| Use Case | SaaS apps with many tenants, dev/test environments |
1d. SQL Logical Servers
- A logical administrative container for Azure SQL Databases
- Not a physical server — it’s a management boundary
- Used to group databases and manage:
- Firewall rules
- Admin login credentials
- Azure AD authentication settings
- Auditing and threat detection policies
SQL Logical Server (my-sql-server.database.windows.net)
├── Database 1
├── Database 2
└── Database 3
2. Azure SQL Managed Instance
Type: Platform as a Service (PaaS) Best For: Lift-and-shift migration of on-premises SQL Server
Provides near 100% compatibility with on-premises SQL Server while still being a fully managed PaaS service.
2a. SQL Managed Instances
- A full SQL Server instance deployed and managed by Azure
- Deployed inside a Virtual Network (VNet) for isolation
- Supports SQL Server Agent, CLR, linked servers, cross-database queries
- Ideal for migrating legacy enterprise applications without code changes
| Feature | Detail |
|---|---|
| Compatibility | ~100% SQL Server on-premises |
| Deployment | Inside Azure VNet |
| Management | Fully managed (Azure handles patching/backups) |
| Use Case | Lift-and-shift from on-prem SQL Server |
2b. Instance Pools
- A pre-provisioned pool of compute resources shared across multiple Managed Instances
- Enables deploying smaller Managed Instances (2 vCores) cost-effectively
- Resources are shared similar to Elastic Pools but for Managed Instances
| Feature | Detail |
|---|---|
| Resource Sharing | Yes — shared vCores across instances |
| Minimum vCores | 2 vCores per instance |
| Use Case | Multiple small managed instances, dev/test |
3. SQL Server on Azure (IaaS)
Type: Infrastructure as a Service (IaaS) Best For: Full control, specific OS/SQL versions, unsupported features
You manage the VM; Azure manages only the physical hardware.
3a. SQL Server Instances
- SQL Server installed and managed by you on Azure Virtual Machines
- Full control over SQL Server version, edition, and configuration
- You handle patching, backups, HA, and OS updates
3b. SQL Server on Azure VMs
- Pre-built Azure Marketplace images with SQL Server pre-installed on Windows/Linux VMs
- Azure provides a SQL IaaS Agent Extension for:
- Automated backups
- Automated patching
- License management (Azure Hybrid Benefit)
| Feature | Detail |
|---|---|
| Control | Full (OS + SQL Server) |
| Compatibility | 100% — any SQL Server feature |
| Management | Mostly manual (you own OS + SQL) |
| Use Case | Unsupported features, custom configs, SSRS/SSIS |
How to Choose
Is your DB > 4 TB?
└── YES → Hyperscale Database
Do you need 100% SQL Server compatibility?
└── YES → SQL Managed Instance
Do you have many DBs with variable usage?
└── YES → Elastic Pool
Do you need full OS/SQL control?
└── YES → SQL Server on Azure VM
Default choice for new cloud apps?
└── Azure SQL Database (Single)
