Azure target sizing & cost modelling for SQL Server estates
Drop your SQL estate inventory here
The CSV produced by the discovery script
1
Sweep the estate
Run Invoke-SqlEstateDiscovery.ps1 once. It finds your SQL Servers from their Active Directory SPNs, a Central Management Server or your own list, queries them in parallel, and writes a single merged CSV. Read-only — no schema, data or query text, only versions, sizes and feature flags.
2
Upload the CSV
Drop the merged file above. Just one instance, or no PowerShell? Run SqlEstateDiscovery.sql in SSMS, save the grid as CSV, and upload as many of those as you like together.
3
Review the options
Every database is scored Ready, Needs review or Not ready against each Azure target — the same categories the Azure portal and SSMS assessments use — with the finding behind every one, plus costs across PAYG, reserved and Hybrid Benefit scenarios.
Everything here comes from the discovery script. The inventory is entirely
machine-generated — there are no columns for anyone to fill in, and nothing is inferred from a
label a human typed. Judgement calls that SQL Server cannot answer for itself, such as whether
the estate is under Software Assurance, live on the Assumptions tab where they are
visible and adjustable rather than buried in a spreadsheet.
Built for large estates. The sweep reads catalog views and DMVs only — no trace, no user data,
nothing that blocks — so it is safe to run during business hours. Budget about a second per instance
plus a few milliseconds per database: a thousand databases is minutes, not hours. This is triage
rather than a final compatibility ruling; once you have chosen the databases to move, confirm them
with the readiness assessment built into SSMS.