One of the things that can make Windows Azure SQL Databases (WASD) attractive is the fact that they run inside of a managed environment. But, that does mean that you’re sharing resources with other databases. That’s not necessarily a bad thing, but if people are extremely worried about performance, yet, still want to take advantage of all the cool stuff in WASD, there is a way to do this; Premium Databases.
I requested access to the early access program and was able to get it. You can request it by clicking on this link and scrolling down to Premium Database. Once you get access you should see this in your list of servers:
To create a Premium Database you just create a database any way you would normally (T-SQL through SSMS, PowerShell, through the web Portal) on the server that has a Premium Quota. Once done, you can see this option on the Scale page of the database on the Management Portal:
When you click on that little check box, down below you’ll see a new drop-down list that lets you pick the amount of dedicated resources you’ll have available. Currently, during the preview, only two can be accessed P1 & P2 which have dedicated to your database 1 core and 8gb of RAM or 2 cores and 16gb of RAM respectively. From there, you just pay for it. All other management is the same as it was before.
This is pretty cool for a couple of reasons. First, you can get dedicated resources if you need them. But, best of all. It’s built like the rest of Azure. You can dedicate the resources while you need them and then deallocate them (really easy through PowerShell) when they’re no longer needed. I think this is really the best part of Azure. You pay for only what you need and only for when you need it.
The process isn’t instant. It took a couple of minutes. But, once it was done, I compared some queries between identical databases, with identical statistics (I ran a full scan on everything) the results were… disappointing. I could see a difference in execution time, but it wasn’t radical. But, the difference is there. It did take a number of executions to finally see consistent behavior, but I did see an improvement. Now, multiply that out with more queries, management, etc. Better is better.
Unfortunately, I had to do a lot of manual measurements because there’s still no way to trace behaviors in WASD. I also couldn’t rely on getting accurate stats out of the execution DMOs because of the volatility of the cache. Still, it was cool to actually see consistently better behavior, even if that difference wasn’t earth shattering.
Want to play with Azure yourself? If you have an MSDN account you can link it directly to an Azure account without using a credit card so that you can play without fear of being charged for the privilege. To help get started I’m presenting a full day pre-con at the PASS Summit 2013 on being a DBA in Windows Azure SQL Database and Windows Azure VMs. There are still some seats left. Sign up here.