Which one did the change and would you be able to share the query plan for that fast query with us?
Michael On Tue, Jan 17, 2017 at 10:46 AM, <tomasz.kasz...@closeit.cz> wrote: > Did the change and the time went down to 20 seconds! > > Incredible. > > Thanks for the hint! > > > On Tuesday, 17 January 2017 07:59:52 UTC+1, tomasz....@closeit.cz wrote: >> >> Yes, there are indexes. >> >> I was wondering about the shortest path but I need all the paths that end >> at specific nodes, usually they will not be the shortests. I will try to >> see if the results are the same with this modification. >> >> On Tuesday, 17 January 2017 03:31:59 UTC+1, Michael Hunger wrote: >>> >>> I presume you have an index / constraint on nodeType1.fullname AND >>> nodeType1.name?! >>> >>> not sure why you do the pattern match first and only then the property >>> lookup. >>> >>> What version are you using? in Neo4j 3.1 for the query below you should >>> see much better performance: >>> >>> match (ea:nodeType1 {name:"something1"})<-[:maps_to*]-(eb:nodeType1) >>> where eb.fullname starts with "something" >>> with distinct ea, eb >>> return ea.name <http://el.name/>, eb.name <http://et.name/>; >>> >>> I would also think that shortest-path is much more sensible here: >>> >>> match (ea:nodeType1 {name:"something1"}) >>> match (eb:nodeType1) where eb.fullname starts with "something" >>> match shortestPath( (ea)<-[:maps_to*]-(eb) ) >>> with distinct ea, eb >>> return ea.name <http://el.name/>, eb.name <http://et.name/>; >>> >>> On Mon, Jan 16, 2017 at 9:19 PM, <tomasz....@closeit.cz> wrote: >>> >>>> Hi, I have a very expensive query that I'm trying to figure out how to >>>> optimise. >>>> >>>> match (ea:nodeType1 {name:"something1"})<-[:maps_to*]-(eb:nodeType1) >>>> with distinct ea, eb match (eb) where eb.fullname starts with >>>> "something" return ea.name <http://el.name/>, eb.name <http://et.name/> >>>> ; >>>> >>>> I've used the profiler and as expected the expand all is the most >>>> expensive part of the operation >>>> >>>> +Filter | 128 | 334812480 | 669618290 | | >>>> +VarLengthExpand(All) | 128 | 669618290 | 1494585385 | | >>>> (ea)<-[:maps_to*]-(eb) >>>> >>>> >>>> I've used the profiler and brought down the running time from 3 hours >>>> to 2,15. I then tried the enterprise version hoping that the query would >>>> use the available processors but it used only one so I'm assuming that >>>> cypher is not parallelizable. >>>> >>>> Is there some quick win to speed up a distinct path query or do I have >>>> to write my own using the java api? >>>> >>>> p.s: the query might not compile as I've tried to summarise the gist of >>>> the issue. >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Neo4j" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to neo4j+un...@googlegroups.com. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- > You received this message because you are subscribed to the Google Groups > "Neo4j" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to neo4j+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Neo4j" group. To unsubscribe from this group and stop receiving emails from it, send an email to neo4j+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.