2017-09-01 170 views
0

我们正在使用Azure Cosmos DB Graph API来缓存具有包含相当大html的属性的CMS的项目。Azure Cosmos的性能DB中包含html属性的大元素

当添加8000个项目时,Cosmos DB开始非常缓慢。

比如这个简单的查询需要约12-15秒即可完成:

g.V().hasLabel('news').limit(10) 

数据在每个顶点周围约4-5千,我已经排除图形设置的内容属性。

我已经将RU增加到5000/s,而Azure Portal中的Monitor-tab似乎已经足够。 Estimating throughput needs表明5000RU应该足够500次读取/秒,但我甚至不能做一个。

查询没有像g.V()。hasLabel('user')这样的html属性的项目仍然很快。

我也试图从索引中排除的路径,但无明显差异(没有重新加载的项目,如果这是必要的吗?)

"excludedPaths": [ 
     { 
      "path": "/Content/?" 
     } 
    ] 

我能做些什么来得到这个加快速度?

回答

2

如果您使用的是.NET SDK,则表明该请求会检索“hasLabel”筛选器的所有结果,并在客户端SDK代码中执行“限制”筛选。

我用Fiddler中的“limit”扩展名嗅探了一些查询,无论该值如何,请求中的查询都不包含TOP子句。在请求的正文文档DB查询看起来像: {"query":"SELECT N_2 FROM Node N_2 WHERE (IS_DEFINED(N_2._isEdge) = false AND (N_2.label = 'news'))"}

我希望它是:{"query":"SELECT TOP 10 N_2 FROM Node N_2 WHERE (IS_DEFINED(N_2._isEdge) = false AND (N_2.label = 'news'))"}

+0

感谢您的输入。我从宇宙数据库团队获得了确认,这是今年10月初将要解决的问题。对承诺的“全球规模”非常重要:-) –