If you want to use SQL Database in Azure you get two options: either deploy it on SQLAzure or SQL Server running in Azure VM, both options provide SQL Database however, there is a lot of difference in feature set, compatibility, manageability & behavior of both. Let’s take a look at some basic difference between SQLAzure and SQLServer:
Difference between SQLAzure and SQLServer
|SQLAzure||SQLServer in Azure VM|
|Offering type||Platform-as-a-Service (PaaS)||Infrastructure-as-a-Service (IaaS)|
|Uptime SLA||99.99%||~99.95%* (only covered for VM)|
|Features\Restrictions||Limited feature parity with on-premise SQLServer||Feature parity with on-premise SQLServer|
|Provisioning speed||Highest provisioning speed||Lower provisioning speed|
|Max DB Size||500GB/Database||16TB/Database|
|Maintenance||Ease of maintenance||Higher maintenance|
|Management||Minimized management||Higher management overhead|
|Costing||Optimized cost||Higher cost (license, H\w, etc)|
|Virtual Network support||╳||⎷|
|High Availability and scalability||⎷ (AlwaysOn, DB mirroring, Replication, Table partitioning)||⎷ (Geo-replication, Point-in-time restores, service-tiers, federations)|
Other details about the difference between SQLAzure and SQLServer:
Uptime SLA: For business critical application meeting uptime is of utmost importance. While keeping this in mind SQLAzure provides an unbelievable 99.99% uptime in all its service tiers even in the basic tier. However, if you want to move to SQLServer running on VM, MS doesn’t really provide any uptime SLA on SQL Server but VMs running in Azure are covered with 99.95% uptime SLA & there is another catch, you must have at-least two or more instances deployed in the same availability set to get that uptime SLA which makes it a little expensive.
Features: Feature parity with on-premise SQL Instance is one of the biggest advantages of running SQL Server in Azure VM, this way you get the same build\version\edition\features and you need not to worry about compatibility and restrictions. However, this is not the case with SQLAzure. In fact SQLAzure is a completely different product having its own features and restrictions. SQLAzure doesn’t support:
- Tables without clustered indexes – you can create tables but can’t insert till you create one clustered index.
- Full text search.
- Defaults and rules
- TDE and data compression
- Windows Authentication option
- Extended stored procedures
Provisioning Speed: provisioning in SQLAzure is very easy and doesn’t take too much time, however provisioning takes time in SQLServer on Azure VMs – the main difference being you create your own dedicated VM which allocates resources and installs OS along with SQL, etc. No doubt it takes less time if you further compare it with on-premise deployments but that’s something different & we’ll have a dedicated blog post just to talk about those differences.
Maintenance and management both are higher on SQLServer on Azure VM reason being it is your dedicated box and you own the control (power) and as you know with great power comes great responsibility J so you need to manage all by yourself. On the other side SQLAzure is just another part of big platform which is being managed and maintained by MS only so you don’t have to worry a lot be it patching or upgrades all is taken care by MS– the flip side is you get lots of restrictions and you don’t get dedicated resources to run your workload.
Cost: SQLAzure is a service based offering and you are not charged for license, but in the case of SQLServer on Azure VM you must get SQL License or your billing will add a portion of license cost – you pay per-minute licensing cost for both SQLServer as well as Windows Server; just wanted to mention that there are other things also which are Azure storage cost for VM and outgoing internet traffic (packet) cost. The best part is you can migrate your on-premise SQL License to Azure & use it there to reduce your per minute cost.
Conclusion: In nutshell, each offering has its own merits and demerits there is no clear winner as such. But one thing is certain, you must consider all these things before taking a decision. Each offering has its own unique features which fit in certain scenarios.
In this Blog you learned about the basic difference between SQLAzure and SQLServer.
Hope you enjoyed the post, feel free to leave a comment. 🙂
Sarabpreet Singh Anand
Subscribe now to get latest Tips\blog posts in your Inbox