Q: When should I use Azure SQL Database, and when should I use SQL Server running in an Azure IaaS virtual machine?
A: Azure SQL Database essentially provides Database as a Service (DBaaS). This means you get a place to store data in a relational database (hosted on SQL Server) without having to worry about:
- Patching the SQL Server hosts or SQL Server
- Providing high availability
- Backing up the data
- Variation in performance (performance is guaranteed at a certain level based on tier, which is Basic, Standard, or Premium—measured in DTUs, which is a performance unit used by Azure SQL Database, as described in "Performance in the new Azure SQL Database Service Tiers")
Azure SQL Database is a shared service. It doesn't include reporting or analytics, although you can install SQL Reporting or SQL Analytics in an Azure IaaS virtual machine and run it against the Azure SQL Database. You can't customize the SQL Server configuration.
The basic guidance is that you should use Azure SQL Database if you can, because it removes a lot of the burden from a management perspective, it provides predictable performance, and it's cheaper than providing an equivalent service in Azure IaaS virtual machines. You can change things such as the collation at the database level and still use stored procedures because they live within a database.
However, if you need capabilities that aren't available with Azure SQL Database, then you should consider using SQL Server installed on an Azure IaaS virtual machine. Remember that if you only need SQL Server for a short period of time, you can lease SQL Server licenses in Azure. To minimize SQL Server licensing costs, you can create a SQL Server instance based on one of the SQL Server templates included in Azure.
For more information about Azure SQL Database capabilities, see "Azure SQL Database Guidelines and Limitations."