Cloud computing has revolutionized data access and storage
and has become integral to business IT infrastructures. Choosing between
Microsoft's Azure SQL and SQL Server is a common dilemma. Which SQL database
system is best to use? This question weighs on the minds of many database
managers, administrators, and analysts.
This article discusses how Azure SQL and SQL Server fit into
the grand scheme of things and how they compare so you can choose the database
service that's right for you.
Azure SQL on the Microsoft Azure Platform is a family of
managed, secure, and intelligent products that use a relational SQL Server
database engine in the Azure cloud. Microsoft brought all the power
of the SQL Server products together as one cloud-based suite.
Suppose you're considering moving your on-premise SQL Server
databases to the Microsoft Azure cloud. In that case, you need to choose among
three viable options: the Azure SQL Database, SQL Managed Instances, or SQL
Server.
What Is Azure SQL Database?
Part of the Microsoft Azure Platform, Azure SQL is a
cloud-based database service (PaaS) for hosting and using a relational SQL
database in the Azure cloud. Thanks to its many advanced features, the Azure
SQL database makes data management easy by sparing administrators any need to
install hardware or software.
What Is Azure SQL Server on Azure Virtual Machines
(IaaS)?
Microsoft SQL Server is a relational database management
system with an array of add-on services built on SQL, a standardized
programming language for database administrators (DBAs) and other IT
specialists. Since 1989, it has been Microsoft's primary on-premise enterprise
database platform.
Azure fully supports running any edition of SQL Server on
IaaS (cloud-based virtual machine) for full compatibility with legacy
on-premise SQL installs and operating system-level access.
Is Azure SQL Database the Same as SQL Server?
Although the Azure SQL database does overlap with on-premise
Azure SQL server's functionality and compatibility, these two products are not
identical and are intended for different purposes.
Many differentiators will influence your decision between
Azure SQL and SQL Server, including performance, cost, and operational
complexity. Let's break them down to see how they compare.
Azure SQL vs. SQL Server: Key Differences between Azure
SQL and SQL Server
One critical choice is whether to use Azure SQL Database or
SQL Server on Azure VMs. Both database systems are optimized for different
database requirements, so diving into their differences is crucial for making
the right decision.
What are the differences between Azure SQL and SQL Server
databases?
- Azure
SQL vs. SQL Server Architecture & Structure
Azure SQL database can host multiple databases from various
clients, meaning it is inherently software multitenant. SQL
Server databases are the only entities on the server and only
hold instances from on-premise setups. This difference in approach is
fundamental: Azure SQL is inherently multitenant and needs to share physical
resources among all service clients.
To understand critical differences between the on-premise SQL Server and the
cloud-based Azure SQL, comparing their communication architecture is also
essential. For on-premise SQL Server, applications talk directly to SQL Server
across the local area network (LAN) using the TDS protocol over TCP/IP or via
HTTP endpoints.
With Azure SQL cloud database services, applications must explicitly call out,
possibly through your own network's firewalls, and reach the Azure SQL Gateway
via the Internet using only TCP/IP.
- Azure
SQL vs SQL Server Performance & Features
When looking into performance features, high availability is
one of the major benefits of opting for Azure SQL database over SQL Server.
Azure SQL Database has some additional features not available in SQL Server,
such as built-in high availability, intelligence, and management.
In Azure SQL database, most of the database-level features, SQL standards, and
T-SQL query processing are supported. For example, database collation and
auditing, T-SQL Expression, etc. are supported, while Linked Server, SQL Agent,
DB Mail, and Polybase features are not supported.
SQL Server supports all the SQL Server on-premises capabilities and you can use
built-in features and functionality that requires extensive configuration
(either on-premises or in an Azure virtual machine).
By default, the Azure SQL database's infrastructure provides high availability
(99.995%) and is fully managed. SQL Server also offers high availability (up to
99.99%), however, managing the additional VM servers is more complex and the
benefits of high availability come at a cost and additional overhead.
- Azure
SQL vs. SQL Server Database Size, Backup, and Restoration
There are also differences regarding the database sizes and
how backup and restoration is done. Azure SQL Database size depends on the
underlying service tiers and storage options (e.g., Basic, Business Critical,
Hyperscale). It supports databases of up to 100 TB with the Hyperscale service
tier model designed for most business workloads.
The size of the on-premise SQL Server database is similarly based on pricing
tiers. SQL Server Express, the free-to-use version, has a hard database limit
of 10 GB. SQL Server Standard, the paid version, allows for databases of up to
524,272 TB.
Another key Azure SQL Database built-in feature is the complete restoration and
automatic database and transaction log backups. These allow users to continue
their operations without any interruptions or delays and is one more advantage
of using Azure SQL Database compared to using SQL Server on-premise.
SQL Server database backups are not automatic but managed using native SQL or
third-party tools. On the other hand, SQL Server supports all recovery models.
In Azure SQL Database, only full recovery that guarantees high availability is
supported. Simple and Bulk Logged recovery models are not available.
Azure
SQL Server vs. SQL Database Management & Control
As Azure SQL is a fully managed SQL Server database engine
based on the latest stable Enterprise Edition of SQL Server, there is no direct
control over the underlying compute server.
With SQL Server, you have complete administrative control over the database
engine, from choosing when to start maintenance/patching and changing the
recovery model to pausing or starting the service to customize it. On the flip
side, with all this additional control comes the added responsibility of
managing the virtual machine.
Thus, SQL Server allows for full control but is more complex to handle. The
Azure SQL Database is a more simple, fully managed database, and thus easier to
use and administer. If you want to improve the performance of Azure SQL, you
can simply pay for a higher service tier.
Azure
SQL Server vs. SQL Database Security and Access
Access to Azure SQL is controlled by a firewall and SQL
logins. SQL Server enables you to specify Firewall rules allowing access from
ranges of IP addresses and Windows Azure platform resources. When it comes to
data encryption at rest, Azure SQL lacks a few of the features found in SQL
Server, like Transparent Data Encryption or Extensible/External Encryption Key
Management.
Azure SQL databases are a better fit for applications with standard security
requirements that can use built-in Azure Security Features. SQL Server works
better for applications that call for special security requirements, including
specific agents at the OS level.
- Azure
SQL vs. SQL Server Syntax
Data definition language or DDL, a syntax used for creating
and modifying database objects' structure, is another differentiator. There are
a few features that the Azure SQL database does not support due to its
architecture, such as the .NET Common Language Runtime (CLR), extended stored
procedures, and table partitioning.
- Azure
SQL vs. SQL Server Cost & Pricing
When using Azure SQL, you pay-as-you-go; all services are
billed hourly at a fixed rate based on your chosen service tier, with options
to scale up services. You can choose between the VCore model (based on your
workload needs) and DTU-based purchasing model (preconfigured bundles of
computing, storage, and I/O resources).
There are no pricing tiers within the SQL Server on the Azure VM pricing model.
However, you can choose different pricing options for virtual machines, managed
disks, storage accounts, virtual networks, and licenses. The operational
pay-per-minute costs depend on the VM size and the edition of the chosen SQL
Server.
Azure SQL or SQL Server: Which One Is Right for You?
There is no one-size-fits-all approach to making the
final verdict in the case of Azure SQL vs. SQL Server. Each comes with
performance, cost, and operational tradeoffs, so you need to weigh the pros and
cons to identify which option best fits your needs.
As a rule of thumb, Azure SQL helps reduce complexity while
SQL Server increases the level of control.
Opt for Azure SQL Database if:
- You're
looking for fast database provisioning or a scalable and elastic database
capacity.
- You're
building modern cloud applications that need the latest stable SQL Server
features and have time constraints.
- You
want to reduce the cost of database ownership and management and focus
more on the application.
Opt for SQL Server on an Azure VM if:
- You
require DTC and Polybase functionality, SQL Server Analysis
Services, Reporting Services, or Integration Services.
- You
want complete administrative control of the operating system.
- You
want complete compatibility with SQL Server instance and OS-level access
to install 3rd party applications/tools and extend your on-premise
deployments to the cloud.
- You
want to make minimal changes to an existing application or quickly migrate
it to the cloud.
- Your
application is designed for "planned database scale" (scale up).
The Bottom Line
Luckily for all IT professionals, Azure provides an array of
options and flexibility, so everyone can get exactly the services they
need. The information provided in this article can help you make an
informed decision before diving into creating and working with your first Azure
SQL Database.