我想了解有关Gremlim查询的详细信息 - 因此我将PopulateQueryMetrics
参数的FeedOptions
属性设置为true
。
但是我回来的FeedResponse
对象没有填充QueryMetrics
属性。
var queryString = $"g.addV('{d.type}').property('id', '{d.Id}')";
var query = client.CreateGremlinQuery<dynamic>(graphCollection, queryString,
new FeedOptions {
PopulateQueryMetrics = true
});
while (query.HasMoreResults)
{
FeedResponse<dynamic> response = await query.ExecuteNextAsync();
//response.QueryMetrics is null
}
我错过了什么吗?
答案 0 :(得分:1)
根据您的描述,我使用Gremlin(图形)API创建了我的Azure Cosmos数据库帐户,我可能会遇到与您提到的相同的问题。我找到了一个教程Monitoring and debugging with metrics in Azure Cosmos DB并阅读了调试查询运行缓慢的原因部分,如下所示:
在SQL API SDK 中,Azure Cosmos DB提供查询执行统计信息。
IDocumentQuery<dynamic> query = client.CreateDocumentQuery(
UriFactory.CreateDocumentCollectionUri(DatabaseName, CollectionName),
“SELECT * FROM c WHERE c.city = ‘Seattle’”,
new FeedOptions
{
PopulateQueryMetrics = true,
MaxItemCount = -1,
MaxDegreeOfParallelism = -1,
EnableCrossPartitionQuery = true
}).AsDocumentQuery();
FeedResponse<dynamic> result = await query.ExecuteNextAsync();
// Returns metrics by partition key range Id
IReadOnlyDictionary<string, QueryMetrics> metrics = result.QueryMetrics;
然后,我通过上面的SQL API查询了我的Cosmos DB Gremlin(图)帐户,我检索了QueryMetrics
如下:
注意:我还检查过您可以像SELECT * FROM c where c.id='thomas' and c.label='person'
一样指定SQL表达式。对于添加新的Vertex,我不知道如何构造SQL表达式。此外,CreateDocumentAsync
方法不支持FeedOptions
参数。
根据我的理解,PopulateQueryMetrics
设置可能仅在使用SQL API时有效。您可以添加反馈here。