在 gremlin Tinkerpop3 中解释计划(DSE 图)

Explain plan in gremlin Tinkerpop3 (DSE graph)

我写了一个查询,它花费的时间比预期的要长。

g.V().hasLabel('Person').has('name','Person1').out('BELONGS').in('HAS').dedup().as('x').in('HAS').filter(__.in('HAS').has('name','App1')).store('y').select('x').dedup().in('HAS').hasLabel('Org').repeat(out()).until(outE().hasLabel('IS')).store('a').cap('y').unfold().in('HAS').hasLabel('Class').repeat(inE('IS').dedup().otherV()).until(inE('HAS')).where(within('a'))

我们可以制定一个解释计划来找出导致此查询变慢的原因吗?

此致

瓦伦·塔欣

在拆分 Gremlin 遍历时,您可以使用多种工具。您可以使用 explain() step and/or the profile() 步骤。 explain() 步骤将显示遍历如何由优化其执行的遍历策略组成和修改。 profile() 步骤将提供遍历执行本身的统计信息。

我也将 Gremlin 控制台本身称为 "tool"。调试 Gremlin 有时会让我执行更小的遍历块,这样我就可以确定它在步骤列表中的任何给定点返回的内容。 Gremlin 控制台,因为它是 REPL,提供了获得代码执行即时反馈的能力,从而让您摆脱 IDE.

的较长开发周期