查询Azure存储表总是1个事务?

时间:2013-08-20 22:51:33

标签: azure transactions azure-table-storage

假设我有一个带有50K行的Azure存储表,其中有类似这样的实体

 {
  PartitionKey,
  RowKey,
  Name,
  Price
}

查询将是这样的

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

当我需要搜索其价格== 10的所有实体时,只会根据返回的结果数来计算交易?或者每个实体(entity.Price == 10)的检查是否会被计为单独的读取交易,导致50K交易?

2 个答案:

答案 0 :(得分:4)

查询本身及其响应将在单个可计费事务中(区别于数据库事务)。但是,该响应可能没有您请求的所有行。如果结果集特别大,您将获得一个延续令牌。当您使用延续令牌拉出更多行时,将发生另一个事务。

答案 1 :(得分:0)

这个怎么样? http://azure.microsoft.com/en-us/documentation/articles/storage-performance-checklist/#subheading25

每秒实体数(帐户)

对于帐户,访问表的可伸缩性限制最多为每秒20,000个实体(每个1KB)。通常,插入,更新,删除或扫描的每个实体都会计入此目标。因此,包含100个实体的批量插入将计为100个实体。 扫描1000个实体并返回5的查询将计为1000个实体。

无论如何这里  了解Windows Azure存储结算 - 带宽,交易和容量 http://blogs.msdn.com/b/windowsazurestorage/archive/2010/07/09/understanding-windows-azure-storage-billing-bandwidth-transactions-and-capacity.aspx