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

时间:2017-02-01 05:09:12

标签: datastax-enterprise gremlin tinkerpop3 datastax-enterprise-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'))

我们可以做一个解释计划,看看是什么让这个查询变慢了吗?

此致

Varun Tahin

1 个答案:

答案 0 :(得分:7)

在挑选Gremlin遍历时,您可以使用多种工具。您可以使用explain()步骤和/或profile()步骤。 explain()步骤将显示遍历策略如何组合和修改遍历,以优化其执行。 profile()步骤将提供有关遍历执行的统计信息。

我还称Gremlin控制台本身是一个“工具”。调试Gremlin有时会让我沿着执行较小块遍历的路径,以便我可以确定它在步骤列表中的任何给定点返回的内容。 Gremlin控制台,因为它是一个REPL,它能够立即获得有关代码执行的反馈,从而使您摆脱IDE的较长开发周期。