SQL Server to Azure SQL Migration: Costs, Method
Matteo Migliore

Matteo Migliore is an entrepreneur and software architect with over 27 years of experience developing .NET-based solutions and evolving enterprise-grade application architectures.

He has led enterprise projects, trained hundreds of developers, and helped companies of all sizes simplify complexity by turning software into profit for their business.

SQL Server to Azure SQL Migration: Costs, Method

The owner of a window-frame company near Padua calls because the management system is slow on Monday mornings. I ask where the database runs. It is on a server under a desk in the warehouse, a 2016 Dell with SQL Server 2016 Standard, and the last verified backup dates from "when the technician came, maybe March". The technician has retired. The backup disk is the same disk as the data, split into two folders.

Migrating SQL Server to Azure SQL pays off when the database is under 500 gigabytes, uses few server-level features and nobody in the company has time to look after backups and updates: for a medium database the project costs about 6,000-15,000 euro and the monthly fee runs from 15 to 300-400 euro, against an on-premises total that almost always exceeds 25,000 euro over five years. This guide explains where a SQL Server database can really go, what breaks in the move, what it costs to run and what the project costs. For the whole application, start from how to migrate an application from .NET Framework.

Why now

An out-of-support SQL Server version is not a visible failure: it is a risk that grows quietly, because Microsoft no longer ships security fixes while your system keeps working as if nothing happened. Extended support for SQL Server 2012 ended in July 2022, for 2014 in July 2024 and for 2016 on 14 July 2026. If your server is one of these, it has been running without fixes for some time. The cost of waiting is described in how much custom software costs.

Four destinations

"Azure SQL" is three products plus a fourth path that is simply your old SQL Server on a cloud virtual machine: Azure SQL Database, Azure SQL Managed Instance and SQL Server on a virtual machine, chosen by how many server features your database really uses.

DestinationCompatibilityMonthly costFits when
Azure SQL DatabaseHigh, not total5 to 400 euroOne database, few server features
Managed InstanceAlmost totalfrom about 700 euroSeveral databases, scheduled jobs, cross-database queries
SQL Server on a VMTotal300 to 900 euroThird-party products certified only on real SQL Server
Upgrade on premisesTotalFixed costHigh constant load, minimum latency, legal constraints
Decision tree for migrating a SQL Server database: server features used or not, certified product, Azure SQL Database, Managed Instance, virtual machine or on premises

What breaks, and the latency trap

Almost everything that breaks sits in five places: SQL Agent jobs, cross-database queries, linked servers, compiled CLR functions and operating-system commands run from the database. Three read-only queries on msdb, sys.sql_expression_dependencies and sys.servers give you the inventory in an hour.

The problem that surprises companies most is latency: a program making a hundred small queries per screen takes 100 milliseconds with a nearby database and two and a half seconds at 25 milliseconds of distance. Measure queries per screen before deciding, and configure retry on transient failures: in EF Core it is one line, EnableRetryOnFailure. See finding slow queries in EF Core.

Screen load time with a local database and with a database in Azure as the number of queries grows

What it costs

A management-system database for fifteen to twenty users costs between 15 and 150 euro a month in Azure SQL Database, rising to 300-400 euro only with a high constant load. Three levers cut the bill: a one- or three-year reservation, the hybrid benefit for licences you already own and the auto-pause of the serverless tier.

The migration project for a database up to 200 GB costs 6,000-15,000 euro at 600 euro a day, in two to five weeks, and half of the time goes into compatibility and testing. Over five years an on-premises database costs 25,500-33,000 euro once server, licence, backup and administrator hours are added up, against 11,500-25,000 euro for Azure SQL Database including the project. It does not pay off with a high constant load, with a program that cannot be fixed and makes hundreds of queries per screen, or with a vendor that supports only on-premises SQL Server.

The method

The method that lets you sleep is always the same: copy the database, run a full rehearsal against real data, compare results, then fix the night of the switch with a written plan to go back. No migration I have seen failed for a technical limit. They failed because the rehearsal was skipped. Keep the old database untouched for at least one month, until a full accounting close has passed without problems.

The six phases of migrating a SQL Server database to Azure SQL: inventory, fixes, rehearsal, switch, monitoring and rollback

For the wider path, including the application, the legacy software modernization path starts from the inventory and ends in a staged plan. Related reading: publishing applications without stress and serverless architecture.

Your step for Monday

Run SELECT @@VERSION and compare it with the end-of-support dates, run the three inventory queries, ask when a backup was last restored as a test, and enter database size and user count in the Azure calculator. If the monthly figure is low and the queries come back almost empty, you have a project of a few weeks. If a backup does not restore, you have found the first thing to fix, wherever the database will live.

Does your company need custom software or AI in the team?

We design and build custom software, modernize legacy systems and train your developers to work with AI. Tell us the problem: you get a concrete answer within one working day.

Frequently asked questions

For fifteen to twenty users, 15 to 150 euro a month, up to 300-400 with a high constant load.

For a database up to 200 GB, 6,000 to 15,000 euro at 600 euro a day, in two to five weeks.

SQL Agent jobs, cross-database queries, linked servers, CLR functions and OS commands run from the database.

It can, because of latency: a program making a hundred queries per screen goes from 100 milliseconds to over two seconds. Measure first.

Yes: rehearsal on a copy, switch on a chosen night and a written rollback plan.

With a high constant load, an unfixable program making hundreds of queries per screen, or a vendor supporting only on-premises SQL Server.

At least one month, until a full accounting close has passed without problems.

Leave your details in the form below

Matteo Migliore

Matteo Migliore is an entrepreneur and software architect with over 27 years of experience developing .NET-based solutions and evolving enterprise-grade application architectures.

Throughout his career, he has worked with organizations such as Cotonella, Il Sole 24 Ore, FIAT and NATO, leading teams in developing scalable platforms and modernizing complex legacy ecosystems.

He has trained hundreds of developers and supported companies of all sizes in turning software into a competitive advantage, reducing technical debt and achieving measurable business results.

Stai leggendo perché vuoi smettere di rattoppare software fragile.Scopri il metodo per progettare sistemi che reggono nel tempo.