Я пытаюсь отладить проблему производительности, связанную с AWS Neptune.Я выполняю некоторые запросы Gremlin, и они, кажется, всегда приводят к 30 запросам в базе данных.Мне интересно, сделал ли я что-то не так в своем запросе.
Странная вещь в этой проблеме заключается в том, что она возникает внезапно.Раньше это работало совершенно нормально, и у нас не было проблем с производительностью.
Каждый выполняемый мной вызов имеет два общих запроса: один для узлов и один для ребер:
nodes = g.V(id).emit().repeat(__.out('manages')).dedup().project('label', 'name', 'job', 'department', 'manager').\
by(__.id()).by('name').by('job').by('department').by('manager').toList()
id_list = list(map(lambda node: node["label"], nodes))
edges = g.V(id).emit().repeat(__.out('manages')).dedup().bothE('similar_to').dedup().\
where(__.and_(__.inV().has(T.id, P.within(id_list)), __.outV().has(T.id, P.within(id_list)))).\
project('from', 'to', 'similarity').by(__.outV().id()).by(__.inV().id()).by('similarity').toList()
По сути, у меня есть два типа ребер: manages и Similar_to.Я пытаюсь создать дерево с помощью ребер 'управляет', а затем нахожу все ребра 'Similar_to' в этом дереве.
Этот запрос дает желаемый результат, но не оптимизирован ли он?