2017-07-25 67 views
0

我有一个包含大约4百万个项目的文档db集合。选择查询获取“请求超时”

我运行形式的查询:

SELECT * FROM c WHERE c.ItemDate >= "2015-01-01" AND c.ItemDate < "2017-07-31" 

该查询最终将枚举集合中的大多数项目,但不是所有(在该范围存在的大部分项目)。当我在azure门户中运行查询时,出现如下错误:“Request timed out”

我的印象是DocumentDb将返回分页结果,并且我最终将使用连续标记来检索后续分页数据。这个实例只会在找到它们时返回文档。

有什么我可以用这个查询来做这个工作吗?

回答

1

把这一个

SELECT * FROM c WHERE (ItemDate >= "2015-01-01" AND ItemDate < "2017-07-31") 
+0

嘛,那肯定运行,但它只返回一个文档,应该有几百万满足该查询。 – Slicc

+0

那么这个1的回报似乎是由于我有限的RU为400.如果我增加到10000,我得到100个物品。似乎这个查询花费了7600 RU,这似乎过分了。希望有一个更有效的方法来做到这一点。 – Slicc

+0

只是为了完成这一点,似乎where条款时,比较字符串是非常昂贵的,当我添加一个额外的日期属性和使用int来表示日期时,RU成本下降到7000. – Slicc