Back to Blog
3 min read

Azure SQL Hyperscale: Massive Scale SQL

Azure SQL Hyperscale scales to 100TB with instant backups and fast recovery. Separates compute from storage for true cloud-native SQL.

Hyperscale Architecture

┌─────────────────────────────────────────┐
│           Compute Tier                   │
│  Primary ←→ Secondary (0-4 replicas)    │
└────────────────┬────────────────────────┘

┌────────────────┴────────────────────────┐
│           Page Servers                   │
│  (Distributed storage nodes)            │
└────────────────┬────────────────────────┘

┌────────────────┴────────────────────────┐
│         Azure Storage                    │
│  (Data files, transaction log)          │
└─────────────────────────────────────────┘

Creating Hyperscale Database

az sql db create \
    --resource-group myRG \
    --server myserver \
    --name hyperdb \
    --edition Hyperscale \
    --compute-model Serverless \
    --family Gen5 \
    --min-capacity 0.5 \
    --max-capacity 8 \
    --auto-pause-delay 60 \
    --storage-size 100GB

Read Scale-Out

# Add read replicas
az sql db update \
    --resource-group myRG \
    --server myserver \
    --name hyperdb \
    --read-replicas 4
// Connect to read replica
var connectionString =
    "Server=myserver.database.windows.net;Database=hyperdb;" +
    "ApplicationIntent=ReadOnly;";

Named Replicas

# Create named replica for specific workload
az sql db replica create \
    --name hyperdb \
    --resource-group myRG \
    --server myserver \
    --partner-server myserver \
    --partner-database hyperdb-analytics \
    --secondary-type Named \
    --capacity 8

Fast Restore

# Point-in-time restore (near-instant)
az sql db restore \
    --dest-name hyperdb-restored \
    --edition Hyperscale \
    --resource-group myRG \
    --server myserver \
    --name hyperdb \
    --time "2020-11-21T10:00:00Z"

Geo-Replication

# Add geo-secondary
az sql db replica create \
    --name hyperdb \
    --resource-group myRG \
    --server myserver \
    --partner-server myserver-westus \
    --partner-resource-group myRG-westus \
    --secondary-type Geo

Performance Tiers

vCoresMemoryIOPS
210.2 GB10,000
420.4 GB20,000
840.8 GB40,000
1681.6 GB80,000
24122.4 GB120,000
32163.2 GB160,000
80408 GB320,000

Serverless Configuration

# Auto-pause and auto-scale
az sql db update \
    --resource-group myRG \
    --server myserver \
    --name hyperdb \
    --compute-model Serverless \
    --min-capacity 0.5 \
    --max-capacity 16 \
    --auto-pause-delay 60  # minutes

Monitoring

-- Check page server status
SELECT * FROM sys.dm_db_page_server_stats;

-- View replica lag
SELECT
    database_id,
    sync_state_desc,
    synchronization_health_desc,
    last_hardened_lsn,
    last_commit_time
FROM sys.dm_hadr_database_replica_states;

Key Benefits

FeatureHyperscaleOther Tiers
Max size100 TB4 TB
Backup speedNear-instantHours
Restore speedMinutesHours
Read replicasUp to 40
Scale computeSecondsMinutes

Migration to Hyperscale

# Migrate existing database
az sql db update \
    --resource-group myRG \
    --server myserver \
    --name existingdb \
    --edition Hyperscale

Note: Migration to Hyperscale is one-way.

Hyperscale: SQL Server at cloud scale.

Michael John Peña

Michael John Peña

Senior Data Engineer based in Sydney. Writing about data, cloud, and technology.