azure - 具有包含 html 的大属性的元素的 Azure Cosmos DB 的性能

标签 azure gremlin tinkerpop3 azure-cosmosdb

我们使用 Azure Cosmos DB Graph API 缓存来自 CMS 的项目,这些项目的属性包含相当大的 html block 。

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

例如,这个简单的查询大约需要 12-15 秒才能完成:

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

每个顶点中的数据约为 4-5 kb,我已在图形设置中排除了内容属性。

我已将 RU 增加到 5000/s,Azure 门户中的“监视器”选项卡似乎表明已经足够了。 Estimating throughput needs建议 5000 RU 应该足以实现 500 次读取/秒,但我什至都做不到。

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

我也尝试从索引中排除路径,但没有区别(如果有必要,还没有重新加载项目?)

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

我该怎么做才能加快速度?

最佳答案

如果您使用的是 .NET SDK,则该请求似乎会检索“hasLabel”过滤器的所有结果,并在客户端 SDK 代码中执行“limit”过滤。

我在 Fiddler 中嗅探了一些带有“limit”扩展的查询,无论值如何,请求中的查询都不包含 TOP 子句。请求正文中的文档数据库查询如下所示: {"query":"从节点 N_2 WHERE (IS_DEFINED(N_2._isEdge) = false AND (N_2.label = 'news')) 中选择 N_2"}

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

关于azure - 具有包含 html 的大属性的元素的 Azure Cosmos DB 的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46000641/

相关文章:

scala - 数据未加载到 Scala 中的表中

python - 如何使用 gremlin python 连接到远程 Neo4j 数据库?

python - 廷克波普 : Multi-Level search to multiple - vertex types

java - 如何在java中编写gremlin jannusgraph谓词lt、lte、gte等?

titan - 如何使用 Gremlin/Titan/TinkerPop3 更新特定的边属性?

gremlin - 获取 Gremlin Server 的版本

azure - 检测到程序集更改。重启主机

azure - ApplicationInsights TrackException() 不记录堆栈跟踪

c# - 向外部方发出出站调用时,Azure Functions 中没有静态 IP 地址

node.js - 在 gremlin javascript 中使用谓词