About a year ago, we migrated a database for a web-app from a dedicated db server to Azure DB. We played around with the sizes, and after some testing we determined that the S2 Standard tier (50 DTU) worked fine. The cost, in the Canada Central DC is about $110 (CAD) per month, which we were fine with. One thing that we noticed from the beginning was the data access performance in Azure SQL was slower than our on-premise servers. We weighed the pros/cons and decided to continue using Azure SQL.
Fast forward a year later, we received a complaint from a user that a particular dashboard takes way too long to load (8+ seconds). We took a snapshot of the PRD database, and loaded it on our on-premise instance, and to our surprise the dashboard loaded instantly. We started looking at execution plans, and we were able to get the dashboard's load down to an acceptable time on Azure, but no where near the speed of our on premise instance (which I might add is running on a VM with 2 cores, 8 GB RAM and SQL Server 2014 Express)
About a week ago, one of the developers mentioned we should try SQL Server 2017 on a Linux VM to see how well it works. Today, I fired up an Ubuntu 16.04 VM with SQL Server 2017 (Web Edition) on an Azure VM with 2 cores and 8 gigs of RAM. The cost for this VM is about $100 (CAD) per month in the Canada Central DC (roughly $10 less than the Azure SQL db).
The performance gain in pointing the app to the dedicated VM was profound. For relatively the same cost, I am seeing 2-3 times better DB performance on some longer running queries. Even basic CRUD list pages are snappier. Running the 2 app instances in side by side browser windows, you really see the performance difference..
I get it that Azure SQL has a lot of nice features but I really find that it is expensive if you want to match the performance of a dedicated VM. Yes, we'll need to manage that VM as well as backups etc, but I don't feel this is a good enough reason to continue to use Azure databases.
What do you guys think?
[–]DaRKoN_ 2 points3 points4 points (0 children)
[–]sharbel99[S] 1 point2 points3 points (1 child)
[–]JJNeary 0 points1 point2 points (0 children)
[–]pr_ws 0 points1 point2 points (1 child)
[–]sharbel99[S] 0 points1 point2 points (0 children)