Overcoming Windows Azure Sql Database 150 gb size limitation Overcoming Windows Azure Sql Database 150 gb size limitation windows windows

Overcoming Windows Azure Sql Database 150 gb size limitation


Currently it is not possible to have a single database larger than 150G.

The only approach is to either split the data into multiple databases, one account can have up to 149 user databases plus the master DB, or use SQL Azure Federations. Currently, if I am not mistaken, the total number of Federations supported is Int16.MaxValue - 1. Each federation is actually a separate database, transparent to the developer, which can be up to 150GB.

However, SQL Azure Federations has its own pros and cons, along with some data access layer re-factoring. If you are interested you may check out these cool videos on SQL Azure Federations:

UPDATE

I will not completely agree with @ryancrawcour. What he explains is just the peak of the iceberg lying bellow the water. The amount of required re-factoring really depends on how data is consumed from the application. I will just mention a few factors for considerations (which are not complete picture at all). Consider any of the following:

  • Data that is common for all federations (how you get this data)
  • Stored proc, that post-processes data - you have to iterate in each and ever federation member and execute that stored proc. There is no way to execute the Stored proc once and process data in all the federations.
  • Aggregate data, which is spread across more than 1 federation member
  • List data from more than one federation member.

These are just few operations that you will need to consider, and that does not require "just change in connection string and execute one use federation ..." before each query. Actually using SQL Azure Federations you don't need to change the connection string at all. It is all the same SQL Azure connection string. The "USE FEDERATION ..." statement is what you have execute before each query. But it is way not just the only thing. And how about if one is using EntityFramework (model first, or code first, or whatever). Things get even more complicated and need real understanding of SQL Azure Federations.

I would say that SQL Azure Federations is different way of thinking about data, about modelling and normalizing.

UPDATE 2 - new Database sizes announced by Microsoft

As of 03. April 2014 the maximum size for a single Database has been increased to 500GB. The only available information to date is here. Be aware that the management portal still doesn't show this option (as of Today and now: 4. Apri 2014, 15:00 GMT+0:00).


I've been looking for these same answers a while ago. In addition to the answers Anton provided (which are very accurate), I found that you can make your WAVM with SQL Server installation redundant through load balancing and mirroring.

The advantage of WASD is that everything is automated. E.g. when your WAVM instance is taken out of the roulation of the load balancer, you'll need bring a new one up yourself. WASD takes care of all of this.

With WASD Federations you're able to scale to 75TB of data (if I remember correctly), while with WAVM with SQL Server you can scale to 16TB tops.

Also with WASD Federations you can more granularly divide the SQL Workloads.

Regards,

Patriek


There is also the new Azure feature of persistent VMs (currently in preview) which will allow you to migrate your on-premises applications to cloud with minimal changes.

Further reading: Infrastructure as a Service Series: Running SQL Server in a Windows Azure Virtual Machine.This guide might be helpful as well.

Edit

Here is a comparison with Sql Azure