当前位置: 首页 > 知识库问答 >
问题:

各种范围查询对Azure表存储性能目标的影响是什么?

井浩思
2023-03-14

这个问题涉及这里描述的Azure表存储中的性能目标阈值。特别是,我关心的是每个分区2K个实体,每秒20K个实体的阈值。我的理解是,如果你越过这些阈值,Azure可能会开始返回500和503个错误。

我想我可能遇到了这个问题,我正在寻找关于这些项目到底是如何计算的澄清。我知道,如果您对整个表或一个分区执行扫描,那么您可能会为Azure扫描的每个实体“收费”,而不管您返回的数字是多少。由于您可以在一个设计不佳的2000行表查询上烧录整个查询“预算”,所以我想确保我正确理解这一点。

为了清楚起见,这里有一个简单的表和相同的示例数据,我们可以在接下来的几个场景中使用。

PartitionKey | RowKey | Name
----------------------------
A              1        Alice
A              2        Bob
A              3        Candice
A              4        Dave
A              5        Eugenia
B              6        Frank
B              7        Genevieve
B              8        Henry
C              9        Ike
C              10       Jennifer

对于下面的每个场景,我将根据性能目标“预算”“收费”的实体的数量称为性能收费。让我们从最恶劣的进攻开始,从那里开始。

未指定PK、未指定RK
查询:名称==“Frank”
绩效费用:10个实体

我相信这是正确的(如果我错了请纠正我)。但是下面的场景呢?

指定PK,指定RK部分范围
查询:PartitionKey==“a”和RowKey>=“4”性能费用:2?还是5?

指定的主键范围
查询:PartitionKey>=“b”和PartitionKey<=“c”
性能费用:5?还是10个?

指定的部分主键范围
query:PartitionKey>=“c”
性能费用:2?还是10个?

提前感谢您的任何指示!

共有1个答案

秦滨海
2023-03-14

根据我的经验,这里是我对您的疑问的理解,您可以参考一下。

没有PK,没有RK指定查询:Name==“Frank”

全表扫描:查询结果扫描整个表(即一个表中所有分区中的所有行)。

履约费:10

指定PK,没有指定RK查询:PartitionKey==“a”和Name==“Frank”

指定PK,指定RK部分范围查询:PartitionKey==“a”和RowKey>=“4”

行范围扫描:查询的结果是扫描特定分区内的行。

履约费:5

查询:PartitionKey>=“B”和PartitionKey<=“C”

查询:PartitionKey>=“C”

分区范围扫描:查询扫描分区服务器范围的结果。

 类似资料:
  • 您好,从我的问题开始:Windows Azure表访问延迟分区键和行键选择有关我在 Azure 存储帐户中组织数据的方式。我有一个表存储方案,旨在存储有关实体的信息。 大约有4000-5000个实体。共有6种实体类型,类型大致均匀分布。所以每个大约800英尺。 参数键:实体类型-日期 行键:实体标识 随着问题的详细说明,我一直遇到延迟问题,查询多个分区似乎需要很长时间。 基本上,一个可能的解决方案

  • 我们在Azure Table Storage中有一个表,自从新实现以来,它目前有50,000个条目。 PartitionKey:字符串形式的日期时间值< br> RowKey:字符串形式的数值 我们使用 生成筛选条件。PartitionKey filter是这样的:

  • 问题内容: SQLite如何在内部处理别名? 创建表名别名是在内部创建同一表的副本还是仅引用同一表而不创建副本? 当我在代码中创建同一表的多个别名时,查询性能会受到严重影响! 在我的情况下,我有一个表,将其称为MainTable,即2列,即名称和值。我想在一行中选择多个值作为不同的列。例如 名称:a,b,c,d,e,f 值:p,q,r,s,t,u ,使得a对应于p,依此类推。 我想在一行中选择名称

  • 我想评估一下我的Windows Azure表存储查询是如何缩放的。为此,我建立了一个简单的测试环境,在这个环境中,我可以增加表中的数据量,并测量查询的执行时间。基于时间,我想定义一个成本函数,它可以用来评估未来查询的性能。 我评估了以下查询: 使用PartitionKey和RowKey查询 使用PartitionKey和属性进行查询 使用PartitionKey和两个行键进行查询 带有Partit

  • 问题内容: 问题:Java中的异常处理是否真的很慢? 传统观点以及许多Google的研究结果都表明,不应将异常逻辑用于Java中的常规程序流程。通常有两个原因, 它确实很慢-甚至比常规代码慢一个数量级(给出的原因各不相同), 和 这是混乱的,因为人们期望仅在异常代码中处理错误。 这个问题是关于#1的。 例如,此页面将Java异常处理描述为“非常慢”,并将这种缓慢与异常消息字符串的创建相关联-“然后

  • 我必须对Azure表存储进行查询,其中我有以下设置:RowKey、PartitionKey、ThirdColumn RowKey是唯一的,Partitionkey与ThirdColumn相关联,这意味着所有值为“Y”的第三列都将具有分区键“X”。 我必须使用ThirdColumn值获取分区键为X的所有实体。这将不是Performance,因为Y既不是PartitionKey也不是RowKey。 问