Azure Table Storage Vs. SQL Azure
At the time of application design decision on Azure, most of us get into this discussion at some point in time, “Table Storage OR SQL Azure”.
I thought of listing down the pros and cons for both of these storage options. Following comparison might be helpful to drive the decision.
List down the expectations from the desired storage from application point of view and compare those requirements with the help of following table.
Provides scalability out of the box and supports approximate ~ 100TB storage
Every transaction (CRUD operation) is charged within the platform which might accumulate higher charges for high volume transactional systems
Transactions within the platform are not charged
Doesn’t provide scalability out of the box and there is a hard limit of 50 GB per database instance. Application need to handle the partition logic
More suited for developing highly scalable, high volume applications
Doesn’t support ACID characteristics of transaction across multiple entities/tables
Supports ACID characteristics of transaction across multiple entities/tables (but not across databases)
More suited for departmental applications
Single query can serve upto 1000 entities only, beyond that we need to use continuation logic in application
Doesn’t impose any limitation like this
Since application doesn’t have to build custom partition logic, effort to build such functionality in application is reduced
Inability to support seamless portability of an application between on-premise and Azure.
More suited to support seamless application portability between on-premise and Azure
Since application has to build custom partition logic might incur sizable efforts to build such functionality
Doesn’t support relational data store & stored procedures etc.
Supports relational data & stored procedures etc.
No support for Spatial data type
Going to support spatial data type
Hope you find this information useful, any other points/suggestions/comments are most welcome.