包含 html 的大 属性 元素的 Azure Cosmos DB 性能
Performance of Azure Cosmos DB of element with big property containing html
我们正在使用 Azure Cosmos DB Graph API 从 CMS 缓存项目,这些项目的属性包含相当大的 html.
添加 8000 个项目时,Cosmos DB 开始变得非常慢。
例如,这个简单的查询大约需要 12-15 秒才能完成:
g.V().hasLabel('news').limit(10)
每个顶点的数据大约为 4-5 kb,我已经排除了图形设置中的 Content-属性。
我已将 RU 增加到 5000/s,Azure 门户中的 Monitor-tab 似乎表明已经足够了。 Estimating throughput needs 建议 5000 RU 应该足够 500 reads/s 但我连一个都做不到。
查询没有 html-属性 的项目,如 g.V().hasLabel('user') 仍然很快。
我也尝试将路径从索引中排除,但没有区别(如果有必要,是否没有重新加载项目?)
"excludedPaths": [
{
"path": "/Content/?"
}
]
我该怎么做才能加快速度?
如果您使用的是 .NET SDK,该请求似乎会检索 "hasLabel" 过滤器的所有结果并在客户端 SDK 代码中执行 "limit" 过滤。
我在 Fiddler 中使用 "limit" 扩展嗅探了一些查询,无论值如何,请求中的查询都不包含 TOP 子句。请求正文中的文档数据库查询如下所示:
{"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'))"}
我们正在使用 Azure Cosmos DB Graph API 从 CMS 缓存项目,这些项目的属性包含相当大的 html.
添加 8000 个项目时,Cosmos DB 开始变得非常慢。
例如,这个简单的查询大约需要 12-15 秒才能完成:
g.V().hasLabel('news').limit(10)
每个顶点的数据大约为 4-5 kb,我已经排除了图形设置中的 Content-属性。
我已将 RU 增加到 5000/s,Azure 门户中的 Monitor-tab 似乎表明已经足够了。 Estimating throughput needs 建议 5000 RU 应该足够 500 reads/s 但我连一个都做不到。
查询没有 html-属性 的项目,如 g.V().hasLabel('user') 仍然很快。
我也尝试将路径从索引中排除,但没有区别(如果有必要,是否没有重新加载项目?)
"excludedPaths": [
{
"path": "/Content/?"
}
]
我该怎么做才能加快速度?
如果您使用的是 .NET SDK,该请求似乎会检索 "hasLabel" 过滤器的所有结果并在客户端 SDK 代码中执行 "limit" 过滤。
我在 Fiddler 中使用 "limit" 扩展嗅探了一些查询,无论值如何,请求中的查询都不包含 TOP 子句。请求正文中的文档数据库查询如下所示:
{"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'))"}