According to the September Azure Newsletter, the SKU recommendation utility for Azure SQL Database is in preview. It’s great to see the Azure SQL team finally built their own version of the DTU Calculator that I built a few years ago. The demand for such a utility seemed obvious when I pitched the idea to the SQL team back in 2014. 🙂
I had an opportunity to review the new SKU recommendation utility so I thought I’d share some of my first impressions. I’ll try not to be overly critical but but the new utility is missing some critical features when compared to the DTU Calculator, IMHO.
SQL Server 2016 or Later
The SKU Recommendation Utility only supports SQL Server 2016 or later. I have to admit, this limitation doesn’t make sense to me. I expect that most developers thinking about migrating their databases wouldn’t be running SQL Server 2016 or later. Those developers are likely part of the thousands with SQL Server 2008 or SQL Server 2012, now faced with upgrade or migrate decisions because of SQL support end-of-life.
Command Line Interface (CLI) Functionality
The SKU Recommendation Utility is limited to CLI only. Again, I don’t get it. In order to get the Recommendation Utility, you have to download the Database Migration Assistant which has it’s own GUI. Seems like a missed opportunity to have both the collection and results included as part of an already existing UI.
Collecting and Reviewing
Collecting and reviewing SKU recommendation results is a two-step process. Admittedly, this is how the DTU Calculator works, but this was the SQL team’s chance to one-up me and integrate both steps into the GUI so the whole process feels seamless.
SKU Recommendation Results
Once you’ve gone through the process of collecting your counters, you’ll need to feed the CSV file into an executable to get the results. The executable will write another file with a table of the recommendation results. While I admit, I like some of the information in the file, I was disappointed at the level of granularity, lack of analytics information, and visual interface.
I know I’ve been critical up to this point so I’ll shift gears a bit. The ability to include regional pricing as part of the recommendation is a very cool feature. Unfortunately, I’m not sure how it works or where it shows up in the results. The only references I see to pricing are in the ExclusionReasons and AppliedRules columns but the pricing information in those columns is pretty generic. I was hoping to see an actual price estimate. Maybe I’m missing something.
SQL Managed Instance
Another cool feature of the SKU Recommendation Utility is that it can recommend either Azure SQL Database or Azure SQL Managed Instance as the optimal deployment target. This is actually a very useful feature. Especially, when it’s coupled with the information in the ExclusionReasons and AppliedRules columns; providing a good level of information as to why SQL MI is a better option than SQL DB or visa versa.
Hopefully, I didn’t turn you off completely to the SKU Recommendation Utility. I’m happy to see the Azure SQL team is working to address what I feel are the first questions developers ask when thinking about migrating their databases to Azure. Specifically, “which service tier and performance level should I use and how many database throughput units (DTUs) am I using now?” and “how much will running my databases in Azure cost me?”
Unfortunately, the SKU Recommendation Utility feels very limited and missing what I feel are some of the most compelling features of the DTU Calculator. That being said, I still feel the DTU Calculator is a better option for answering the questions above. On that note, I’m pleased to announce I’m working on the next version of the DTU Calculator! Here’s a quick summary of some of the key features I’m adding to what I’m calling the Azure SQL Calculator. I’ll release a separate blog post with more details later.
- Support for analyzing performance on multiple SQL Servers simultaneously
Support for analyzing performance on individual databases, not just at a server level
- Support for Azure SQL DB, Elastic Pools, and SQL Managed Instance as part of the recommendation
- Support for regional pricing as part of the results
- Support for recommendation of optimal deployment targets for best performance and least cost