Recently migrated an on-prem SQL Server database to Azure SQL database, using Azure Data Studio migration assistant. The process was successful.
However, the size of the final database is much larger than the one on-prem. This is unacceptable given the cost and budget I have.
After checking data files and log, I realized that the indexes for some of the biggest tables are quite large, much larger than the same indexes on-prem.
I'm puzzled on why this is happening.
Use Ola Hallengreen scripts to rebuild all indexes on the database. After migrations, I recommend rebuilding indexes and update statistics. As stated on this old Microsoft article, index fragmentation can consume a lot of space on Azure SQL.
After defragmenting indexes, you can consider page compression to save 40-30% of space more.
In addition, the "online" rebuild of indexes and the isolation level RCSI the Azure SQL add extra bytes to indexes as you can read in this support article. Please rebuild indexes offline to reclaim extra space.