各种范围查询的Azure表存储性能目标含义是什么?

时间:2016-11-14 04:58:24

标签: performance azure azure-table-storage

此问题涉及Azure表存储中描述为here的性能目标阈值。特别是,我关注每个分区的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
查询:姓名=="弗兰克"
绩效费用:10个实体

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

PK指定,未指定RK
查询:PartitionKey ==" A" AND Name ==" Frank"
绩效费用:5个实体

指定PK,指定RK范围
查询:PartitionKey ==" A" AND(RowKey> =" 2" AND RowKey< =" 3")
表演费:2?还是5?

指定PK,指定RK部分范围
查询:PartitionKey ==" A" AND RowKey> =" 4" 表演费:2?还是5?

指定的PK范围
查询:PartitionKey> =" B" AND PartitionKey< =" C"
表演费:5?还是10?

指定部分PK范围
查询:PartitionKey> =" C"
表演费:2?还是10?

提前感谢您的任何指示!

1 个答案:

答案 0 :(得分:0)

根据我的经验,这是我对您的查询的理解,您可以参考它。

  

没有PK,没有指定RK   查询:姓名=="弗兰克"

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

表演费:10

  

PK指定,没有指定RK   查询:PartitionKey ==" A" AND Name ==" Frank"

     

PK指定,指定RK范围   查询:PartitionKey ==" A" AND(RowKey> =" 2" AND RowKey< =" 3")

     

指定PK,指定RK部分范围   查询:PartitionKey ==" A" AND RowKey> =" 4"

行范围扫描:查询会扫描特定分区中的行。

表演费:5

  

查询:PartitionKey> =" B" AND PartitionKey< =" C"

     

查询:PartitionKey> =" C"

分区范围扫描:查询会扫描一系列分区服务器。

表演费:5,2

此外,您可以关注Designing a Scalable Partitioning Strategy for Azure Table Storage和此tutorial,以便更好地了解它。