czech_u
czech_u

Reputation: 209

Is querying Azure Storage Tables always 1 transaction?

Suppose I have an Azure Storage Table with 50K rows with entities like this

 {
  PartitionKey,
  RowKey,
  Name,
  Price
}

And the query would be something like this

var query = from entity in dataServiceContext.CreateQuery<MyEntity>(tableName)
                 where entity.Price == 10
                 select new { entity.Name};

When I need to search for all entities whose Price == 10 will the transactions be counted only for the number of results returned? Or will the check of every entity (entity.Price == 10) be counted as separate read transaction what results in 50K transactions?

Upvotes: 2

Views: 780

Answers (2)

Valentin Petkov
Valentin Petkov

Reputation: 1648

What about this? http://azure.microsoft.com/en-us/documentation/articles/storage-performance-checklist/#subheading25

Entities per Second (Account)

The scalability limit for accessing tables is up to 20,000 entities (1KB each) per second for an account. In general, each entity that is inserted, updated, deleted, or scanned counts toward this target. So a batch insert that contains 100 entities would count as 100 entities. A query that scans 1000 entities and returns 5 would count as 1000 entities.

anyway here
Understanding Windows Azure Storage Billing – Bandwidth, Transactions, and Capacity http://blogs.msdn.com/b/windowsazurestorage/archive/2010/07/09/understanding-windows-azure-storage-billing-bandwidth-transactions-and-capacity.aspx

Upvotes: 0

Dennis Burton
Dennis Burton

Reputation: 3332

The query itself and its response will be within a single billable transaction (distinguishing from database transactions). That response however may not have all of the rows you requested. If the result set is particularly large, you will get a continuation token. When you pull more rows with the continuation token another transaction will take place.

Upvotes: 5

Related Questions