Azure SQL deployment: SQL Database vs Managed Instance vs SQL Server on VMs vs Fabric vs Arc

Verdict: Azure SQL Database for greenfield cloud-native apps. Managed Instance for lift-and-shift needing SQL Agent and cross-database queries. SQL Server on VMs for OS-level control. Fabric for OneLake analytics; Azure Arc to manage instances outside Azure.

CriterionAzure SQL DatabaseAzure SQL Managed InstanceSQL Server on Azure VMsSQL in Microsoft FabricSQL Server enabled by Azure Arc
ModelPaaS single/pooled databasePaaS instanceIaaS, full OS controlPaaS mirrored to OneLakeManagement plane for external SQL
PatchingAutomaticAutomaticCustomer, or IaaS Agent extensionAutomaticNot applicable
Instance featuresNo SQL Agent or cross-db queriesSQL Agent, cross-db, Database MailFull engineNoRuns on the source engine
Max storageHyperscale 128 TB16 TB256 TBn/an/a
Choose whenGreenfield cloud-native appLift-and-shift needing instance featuresOS-level control, CLR, third-party agentsAnalytics in Fabric/OneLakeInventory SQL instances outside Azure

Rules

Traps