It actually depends on your application requirements. Azure Tables and Blobs provide very cheap storage where as SQL Azure is comparatively expensive. Furthermore Azure Tables does not have built-in transaction support as well as relational features available
in SQL Azure.
What I would recommend is that you analyze your application requirements from data management (CRUD) point of view and then decide which component (SQL Azure, Azure Tables, and Azure Blob Storage) is best for each requirement. You could come up with an architecture
where you are using all three of them.
Gauruv's response is spot on. I'd only add a couple things to it:
In their "vanilla" forms, Table Storage can scale larger than SQL Azure. SQL Azure instances are limited to 150GB, and there is currently no way to scale up (ie, more CPU/memory/etc). If you use SQL Azure Federations, then they can both potentially scale
to very large sizes.
Table Storage seems to be more reliable. I've been using both SQL Azure and table storage heavily for over a year. In that time I've had multiple outages and performance problems with SQL Azure. I've had no problems at all with Table Storage.
SQL Azure is still a SQL Server. You need to design it, optimize it, and manage it just like an on-premise SQL Server instance. Microsoft support generally will not help you figure out your locking issues, where you need indexes, how to write queries, etc.
Because SQL Azure has a lower hardware spec than some on-premise installation, good design and good queries are even more important.
Proposed As Answer byVitor TomazThursday, January 12, 2012 7:45 PM