Bacpac vs dacpac for migrating database to Azure

A DACPAC plus the data is a BACPAC. Personally, I'd use the BACPAC method.


BACPAC with import: only work for empty or new databases

DACPAC + ExtractAllTableData with publish: you can have objects in the target database, and it will be overwritten by default


As Grant said bacpac is dacpac+data.Below is one more definition that might help

"A bacpac includes the schema and data from the database. A dacpac containers only the schema and not the data"

You might have understood, you need bacpac.

I need this process to run in the fastest way possible, so I'd be curious if one option is better for performance.

We have few databases(400Gb) in Azure.we observed it is faster to import data when we load data from storage..The approach we followed was to load data into storage which is in same location as database and then import data..

SQLSERVER team tested a few options and they observed BCP is fastest compared to remaining options..

enter image description here

Below is how you import bcp data into azure

bcp TestDB.dbo.Customer in "C:\Users\cesardl\BCP\Customer.txt"
-c -U mysqlazureuser@mysqlazureservername
-S tcp:mysqlazureservername.database.windows.net
-P mypassword

Further reading/References:

Importing/Exporting data to SQL Azure databases using BCP and SQL Scripts
Loading data to SQL Azure the fast way