【问题标题】:Cosmos DB SQL API query tracingCosmos DB SQL API 查询跟踪
【发布时间】:2019-09-26 03:37:46
【问题描述】:

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

有没有办法获取所有查询和执行时间(如 SQL server Profiler Trace)?

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

【问题讨论】:

标签: azure-cosmosdb azure-cosmosdb-sqlapi


【解决方案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

【讨论】:

  • 感谢您的回答,我知道这些细节。目前,我们有 10 多个微服务,通过这种方法,我必须更改所有应用程序数据访问层并编写自定义代码来记录查询和执行指标。
  • 嗯,这是您真正拥有的唯一选择。如果你真的需要它们,你需要添加它们。强烈建议无论如何都要有依赖日志。
猜你喜欢
  • 2018-12-17
  • 1970-01-01
  • 2018-07-13
  • 1970-01-01
  • 1970-01-01
  • 2019-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多