Объясните план в gremlin Tinkerpop3 (график DSE)

Я написал один запрос, который занимает больше времени, чем ожидалось.

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'))

Можем ли мы составить план объяснения, чтобы выяснить, что замедляет выполнение этого запроса?

С Уважением

Варун Тахин


person Varun Tahin    schedule 01.02.2017    source источник


Ответы (1)


В вашем распоряжении несколько инструментов, когда вы разбираете обход Гремлина. Вы можете использовать шаг объяснять () и / или profile () step. Шаг explain() покажет, как обход составляется и модифицируется стратегиями обхода, которые оптимизируют его выполнение. Шаг profile() предоставит статистику самого выполнения обхода.

Я бы также назвал саму консоль Gremlin «инструментом». Отладка Gremlin иногда приводит меня к выполнению небольших фрагментов обхода, чтобы я мог определить, что он возвращает в любой заданной точке списка шагов. Консоль Gremlin, так как это REPL, предоставляет возможность получать немедленную обратную связь о выполнении кода, тем самым избавляя вас от длительного цикла разработки вашей IDE.

person stephen mallette    schedule 01.02.2017