在Azure表上使用和执行查询非常慢

在Azure表上使用和执行查询非常慢,azure,azure-table-storage,Azure,Azure Table Storage,如果我尝试这样做: ( RowKey ge '1606780800000' ) 我在一秒钟内得到结果 但是如果我尝试使用和,仍然像这样使用RowKey: ( RowKey ge '1606780800000' and RowKey le '1606784400000' ) 它一直在加载 我知道,但是和的情况也是一样吗?有什么办法解决这个问题吗?如果只使用带AND和操作符的两个行键(不带PartitionKey),它将执行表扫描 以下是一些建议: 1.如果可能,您可以使用。然后您可以指定过滤器

如果我尝试这样做:

( RowKey ge '1606780800000' )
我在一秒钟内得到结果

但是如果我尝试使用
,仍然像这样使用RowKey:

( RowKey ge '1606780800000' and RowKey le '1606784400000' )
它一直在加载


我知道,但是
的情况也是一样吗?有什么办法解决这个问题吗?

如果只使用带AND和
操作符的两个行键(不带PartitionKey),它将执行表扫描

以下是一些建议:

1.如果可能,您可以使用。然后您可以指定过滤器,如
$filter=PartitionKey eq'xxx'和RowKey ge'1606780800000'和RowKey le'1606784400000'
。但是如果有一个以上的分区键,则需要编写多个查询


2.如果仍然使用此查询:
(RowKey ge'1606780800000'和RowKey le'1606784400000')
。此时,如果
请求的项目超过1000个,则查询一次最多只能返回1000个项目。因此,在这种情况下,您应该在查询中使用
x-ms-continuation-NextPartitionKey
x-ms-continuation-NextRowKey
。有关更多详细信息,请参阅。

应返回多少个结果?关于“它一直在加载”,你是说没有结果返回?@IvanYang我的意思是它一直在等待结果的出现,但是因为有太多的数据需要扫描,所以它“永远”留在那里。半小时后我就放弃了。我将接受这个答案,因为它回答了我的问题,它是否执行表格扫描。现在我知道了,这也解释了为什么要花这么长时间。此外,你的建议可能会帮助他人。在我的特殊情况下没有帮助,因为这是不实际的。我必须运行大约12000次查询才能覆盖所有可能的PartitionKey。因为我想查询的时间段是最近的,所以我只获取了某一天以来的所有行,然后以编程方式放弃了我不想要的行。