假设我有一个带有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交易?
答案 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