The recent trend proves that the adoption of the Cloud has much greater significance and importance in modernizing IT. If you are working on migrating the on-premises SQL Server to Microsoft Azure cloud, you need to have a better understanding of the key differences between Azure SQL databases and SQL Server on Azure VMs and options that work best for you.
One of the key decision points for organization and Azure users is whether to deploy Azure SQL Database or SQL Server on Azure VMs for their relational database needs. Azure SQL Databases and SQL Server on Azure VM are optimized for different requirements. Let us deep dive further to understand the key differences.
In this article, you will see:
- Introduction and overview
- Azure SQL database design concepts
- Difference between Azure SQL Database and SQL Server on Azure VMs
- And more…
Overview
Azure SQL Database is great in several scenarios — when there is a challenge to provision and manage many databases without building the datacenter infrastructure; when there is a need to reduce the risk—as the management and patching overhead is completely owned by the vendor, which helps organizations and application owners concentrate on just the design-and-usage of the database.
Azure SQL databases are optimized for scenarios where there is a need for quick turnaround time in building the application (go-to-market time) and lower cost requirements (TCO – Total Cost of Ownership), reduced risks, and improved productivity.
Key differences between Azure SQL Database and SQL Server on Azure VMs
The following table summarizes the key differences between Azure SQL Database and SQL Server on Azure VMs.
Azure SQL Database vs SQL Server on Azure VMs |
Azure SQL Database |
Azure IaaS SQL Server |
Database Features |
The majority of the database-level features, SQL standards, T-SQL query processing are supported. For example, database collation, database auditing, T-SQL Expression, etc. |
It supports all the SQL Server on-premises capabilities |
Database size |
|
Max database size is constrained by the size of the VM. SQL Server instances support up to 256 TB of storage. The instance can support as many databases as needed For example, a premium storage disk can support up to 32 TB. You also have an option to use Ultra disk. The Ultra Disk is available in different sizes that can be customized for the range of input values You can refer to the Image 1 for more details |
Database File layout |
Multiple log files are not supported |
Multiple log files are supported |
Compute resources |
The computing resource is based on the DTU or VCore Model. There is no direct control over computing resources. You need to understand the performance baseline benchmarks to decide the computing |
In this case, you have full control over the VM compute resources for all the SQL Server deployments The VM series are broadly classified to fulfill all the application needs:
|
Availability |
It is 99.995% available and availability is guaranteed
|
The availability is up to 99.99%
|
Migration |
It will be migrated to the latest available stable database engine version Run Database migration Assistant or Azure Migrate tools to define the upgrade or migration paths You can also try Transactional Replication in some cases You can refer to this article for T-SQL differences |
It will be a lift-and-shift kind of migration, if it is the same version You can use SQL native backup and restore method, log shipping, AlwaysOn for the migration |
Database Backup |
Automatic. It will support short-term (7 or 35 days) and Long-term up to 10 years based on the service tiers
It is possible to restore the deleted database point-in-time, or to the earlier point-in time on the same server
|
It is not an automatic process. The database backups are managed using SQL native or any third-party tools |
Resource Management |
We have a scale in and scale out option to manage the compute (DTU) to individual databases |
You can still use the resource governance features with a heavy administration overhead |
Database Patching |
Automatic |
Manual |
License |
Built-in license model. The database software is automatically patched and upgraded by Microsoft
|
Azure Hybrid Benefit (AHB)—It supports the use of the existing server license with Software Assurance BYOL (Bring-Your-OWN-License) model where you need to pay for VM (Compute) and storage only You also have the option to use Microsoft controlled licenses for SQL Server images versions such as SQL Server 2008R2, SQL Server 2012, SQL Server 2014, SQL Server 2016, SQL Server 2017, SQL Server 2019 and editions such as Developer Edition, Express Edition, Web Edition , Standard Edition, and Enterprise Edition Pay-as-you-go model Disaster recovery (DR) model where it is used only for DR in Azure |
Pricing |
Azure SQL Database pricing calculator |
|
Monitoring and Reporting |
Integrated with BI. It is easy to integrate with SQL Server analytics solution and Log Analytics using OMS |
Need integration with custom scripts or third party tool |
Usage |
|
|
SQL Agent, Linked server & DB Mail |
No SQL agent or DB mail or Linked server |
SQL Agent & DB Mail are supported as similar to on-premise. Supports Linked server |
Transparent Data Encryption (TDE) |
By default, TDE is enabled |
TDE is not enabled by default. You need to walk-through the manual process to enable TDE manually |
Database Restore |
You can only restore using the Azure portal, or Azure PowerShell cmdlets or Azure CLI cmdlets Database restores with automated backups using SSMS is not allowed. Point-in-time database restores are possible and are performed using the above-mentioned set of methods |
Restore can be performed using SSMS and point -in-time restore possible depending on the backup frequency and database recovery model |
Database Copy |
Bacpac files, import/export or data copy methods to copy the databases |
Backpac, import/export, backup and restore method |
Business Intelligence Services |
Azure Data Factory (For SSIS packages) |
Power BI for SSRS ( SQL Server Reporting Services) |
Azure Analysis Services (for OLAP models) |
SSAS ( SQL Server Analysis Services) |
|
Recovery model |
Only Full Recovery that guarantees high availability is supported. Simple and Bulk Logged recovery models are not available |
All 3-recovery models Full, Simple, and Bulk-logged recovery models are supported |
Transactional Replication |
Yes, Transactional and snapshot replication subscriber only |
Replication is supported |
Driver and tool support |
It supports the following drivers: .Net Framework , ODBC, PHP, JDBC, OLEDB, NODE.js Tools: SSMS, sqlcmd, Azure Data Studio, MSSQL CLI You can refer to image 3 for more details |
SQL Server connectivity can be made using the following drivers: ODBC Drivers or SQL Native Client driver or OLEDB provider for SQL Server Tools: SSMS, sqlcmd, Azure Data Studio, MSSQL CLI |
Summary
In this article, you have learned the key differences between an SQL Server on Azure VMs and Azure SQL database.
Cloud platforms offer greater flexibility to manage TCO (Total Cost of Ownership). In the case of Azure SQL Database completely avoids CAPEX (Capital Expenditure) and OPEX (Operational Expenditure) but in the case of SQL Server on VMs induce a huge reduction in CAPEX.
By now, you understand that Azure SQL Databases do not provide all the features like replication, SQL Server Agent, Linked Servers, etc.,. The organizations that rely heavily on such features then SQL Server on Azure VM is the best fit. SQL Server on Azure VMs is optimized for scenarios where an organization is looking to extend its on-premises deployments to the cloud. Since the SQL Server engine running on an Azure VM is exactly the same as that running on your on-premises environments, it’s easier for organizations to lift-and-shift their SQL workloads to Azure. With SQL Server running on Azure VMs, the organization’s IT team has full administrative control over the VMs.
That is all for now… stay tuned for more updates.
Image 1: Ultra disk layout
Image 2: Premium performance model
Image 3: Driver and Tools
Table of contents
- Stairway to SQL essentials - April 7, 2021
- A quick overview of database audit in SQL - January 28, 2021
- How to set up Azure Data Sync between Azure SQL databases and on-premises SQL Server - January 20, 2021