I am working with Azure Table Storage, and trying to figure out the best way to increase performance. The queries that I perform are very simple - either an exact select using partition key and row key, or a where clause with a list (e.g., WHERE x==1 or x==2 or x==3, etc). Once I get the data back, I don't track it in a data context (no need for change tracking, etc). Saving data is likewise, so I only add it to the context to enable the save.
At the moment, I am using the .NET library (storage client). As I don't use the change tracking and other features of the TableServiceContext, I am thinking about using the HTTP API directly. Has anyone tried both options? If so, what kind of performance difference did you see?
Thanks, Erick
The arrangement of data across partitions affects query performance. Retrieving a records by their primary key is always very fast but Azure Tables resorts to table scans to find any data that is not in the same partition. Each scanned row counts towards that 20,000 operations per second limit.
Blob Storage provides backup and disaster recovery capabilities. For more information, see Backup and disaster recovery for Azure IaaS disks. You can also use Blob Storage to back up other resources, like on-premises or IaaS virtual machine-hosted SQL Server data.
Azure tables are only cheaper than SQL Azure if the data access pattern is relatively light, since tables have a per-transaction fee and SQL Azure doesn't.
Table storage can be a bit of a fickle beast to optimize performance. There are a variety of factors that will impact it. Here are just a few off the top of my head:
There are many more I suppose that depend on your application. However, the ones I mention are generally the ones I start with.
Have you turned Nagle off?
Of Interest:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With