查询Azure存储表是否总是一个事务?
假设我有一个Azure存储表,其中有50K行和这样的实体查询Azure存储表是否总是一个事务?,azure,transactions,azure-table-storage,Azure,Transactions,Azure Table Storage,假设我有一个Azure存储表,其中有50K行和这样的实体 { PartitionKey, RowKey, Name, Price } var query = from entity in dataServiceContext.CreateQuery<MyEntity>(tableName) where entity.Price == 10 select new { entity.Name}; 这
{
PartitionKey,
RowKey,
Name,
Price
}
var query = from entity in dataServiceContext.CreateQuery<MyEntity>(tableName)
where entity.Price == 10
select new { entity.Name};
这个问题应该是这样的
{
PartitionKey,
RowKey,
Name,
Price
}
var query = from entity in dataServiceContext.CreateQuery<MyEntity>(tableName)
where entity.Price == 10
select new { entity.Name};
var query=来自dataServiceContext.CreateQuery(tableName)中的实体
其中entity.Price==10
选择新的{entity.Name};
当我需要搜索所有Price==10的实体时,是否只计算返回结果的数量?或者,每个实体(entity.Price==10)的检查是否会被计算为单独的读取事务,这将导致50K个事务?查询本身及其响应将在单个可计费事务中(区别于数据库事务)。但是,该响应可能没有您请求的所有行。如果结果集特别大,您将得到一个延续标记。当您使用延续令牌拉取更多行时,将发生另一个事务。查询本身及其响应将在单个可计费事务中(区别于数据库事务)。但是,该响应可能没有您请求的所有行。如果结果集特别大,您将得到一个延续标记。当您使用延续令牌拉取更多行时,将发生另一个事务。这是怎么回事? 每秒实体数(帐户) 对于一个帐户,访问表的可扩展性限制高达每秒20000个实体(每个1KB)。一般来说,插入、更新、删除或扫描的每个实体都将计入该目标。因此,包含100个实体的批插入将计为100个实体扫描1000个实体并返回5的查询将计为1000个实体。 无论如何,在这里
了解Windows Azure存储计费–带宽、事务和容量 这个怎么样? 每秒实体数(帐户) 对于一个帐户,访问表的可扩展性限制高达每秒20000个实体(每个1KB)。一般来说,插入、更新、删除或扫描的每个实体都将计入该目标。因此,包含100个实体的批插入将计为100个实体扫描1000个实体并返回5的查询将计为1000个实体。 无论如何,在这里
了解Windows Azure存储计费–带宽、事务和容量
要记住一件事:您发布的查询将导致完整的表扫描。我意识到这不是你的问题,因此我发表评论。但随着表大小的增加,这可能会导致应用程序出现一些与性能相关的问题。你至少应该考虑在分区内搜索(减少到分区扫描)。希望我能双倍投票。Great eye@davidmakonone需要记住一件事:您发布的查询将导致完整的表扫描。我意识到这不是你的问题,因此我发表评论。但随着表大小的增加,这可能会导致应用程序出现一些与性能相关的问题。你至少应该考虑在分区内搜索(减少到分区扫描)。希望我能双倍投票。Great eye@davidmakognoto澄清“特别大”,结果集不能大于1000行。如果有更多行可用,您将获得一个延续令牌。但是,您也可以获得一个结果集少于1000行的延续令牌。即使有符合条件的行,也可以获得一个包含0行和延续标记的结果集。如果不是按PK/RK查询,则更有可能获得延续令牌。为了澄清“特别大”,结果集不能大于1000行。如果有更多行可用,您将获得一个延续令牌。但是,您也可以获得一个结果集少于1000行的延续令牌。即使有符合条件的行,也可以获得一个包含0行和延续标记的结果集。如果不是按PK/RK查询,则更有可能获得延续令牌。