Cosmos DB SQL API查询跟踪

时间:2019-05-08 11:48:59

标签: azure-cosmosdb azure-cosmosdb-sqlapi

我在Cosmos DB(SQL API)中有许多集合,并且使用同一数据库有许多服务。每分钟执行100个查询,有时我会看到RU超出警告。我知道并不是所有应用程序都优化了所有查询。

是否可以获取所有查询和执行时间(例如SQL Server Profiler跟踪)?

我尝试启用Cosmos DB Diagnostic Settings,但没有任何跟踪查询的方法

1 个答案:

答案 0 :(得分:1)

您必须执行的方法是在SDK中启用PopulateQueryMetrics

已启用查询的人将填充x-ms-documentdb-query-metrics标头。该值如下所示:

totalExecutionTimeInMs=33.67;queryCompileTimeInMs=0.06;queryLogicalPlanBuildTimeInMs=0.02;queryPhysicalPlanBuildTimeInMs=0.10;queryOptimizationTimeInMs=0.00;VMExecutionTimeInMs=32.56;indexLookupTimeInMs=0.36;documentLoadTimeInMs=9.58;systemFunctionExecuteTimeInMs=0.00;userFunctionExecuteTimeInMs=0.00;retrievedDocumentCount=2000;retrievedDocumentSize=1125600;outputDocumentCount=2000;writeOutputTimeInMs=18.10;indexUtilizationRatio=1.00

如您所见,这需要拆分和解析,但是它具有许多有用的信息,您可以记录这些信息并进行查询,以查看有关查询及其性能的很多内容。

您可以在此处了解有关查询指标的更多信息:https://docs.microsoft.com/en-us/azure/cosmos-db/sql-api-query-metrics