>
> Please use relationship-types and directions !!!

Even if there is only one relationship type between the objects? I never 
experienced huge performance differences typing the relationships and 
giving them directions.

Would be important to see what the execution plans look like


Here we go:

PROFILE
MATCH (n:Contact)--(:ActivityContact)--(ar:ActivityReport)
WHERE ar.StartDateTime > 1356994800
WITH DISTINCT n, COUNT(ar) AS val
CREATE (s:ScoreFactor {
name: "ContactActivities123",
value: val
})
CREATE (n)-[:HasScoreFactor]->(s)

Added 8307 labels, created 8307 nodes, set 16614 properties, created 8307 
relationships, statement executed in 10126 ms.

<https://lh3.googleusercontent.com/-fO9zOuzGLhE/VdDGc9hUOjI/AAAAAAAAFxU/FP_NVkPzMi0/s1600/plan.png>
Btw, how can I export a query plan in text format to paste here?
 

On Sunday, August 16, 2015 at 6:41:10 PM UTC+2, Michael Hunger wrote:
>
> If that query returns that many rows, depending on the number of 
> ActivityReports, I'd query those first and then continue with the rest of 
> the query.
>
> Please use relationship-types and directions !!!
>
> MATCH (ar:ActivityReport)
>>
>> WHERE ar.StartDateTime > timestamp()
>>
>> MATCH (n:Contact)--(:ActivityContact)--(ar:ActivityReport)
>>> WITH DISTINCT n, COUNT(ar) AS val
>>> CREATE (s:ScoreFactor {
>>> name: "ContactActivities",
>>> value: val
>>> })
>>> CREATE (n)-[:HasScoreFactor]->(s) 
>>
>>
> Would be important to see what the execution plans look like
>
> Michael
>
> Am 16.08.2015 um 18:34 schrieb Markus Hofer <[email protected] 
> <javascript:>>:
>
> Hi Michael,
>
> again, sorry for the late reply.
> I am using another query now, but I can tell you that the outlined query 
> returned 100K paths.
> Server had 12G of memory available.
> Since your mentioned different pattern matching after WITH statements:
> I am using variables with WITH extensively. Is this recommended or should 
> it rather be avoided?
>
> On Monday, July 6, 2015 at 1:05:12 AM UTC+2, Michael Hunger wrote:
>>
>> how many paths does this return?
>>
>> MATCH (n:Contact)--(:ActivityContact)--(ar:ActivityReport) RETURN count(*)
>>
>> the second query causes cypher to use a different pattern matcher (which 
>> is suboptimal) but it should not run forever.
>>
>> you can see this if you prefix your queries with PROFILE or EXPLAIN
>>
>>
>> Am 04.07.2015 um 23:24 schrieb Markus Hofer <[email protected]>:
>>
>> The following query works and inserts 8000 nodes in 3 seconds
>>
>>
>> MATCH (n:Contact)--(:ActivityContact)--(ar:ActivityReport)
>>> WHERE ar.StartDateTime > timestamp()
>>>  
>>> WITH DISTINCT n, COUNT(ar) AS val
>>> CREATE (s:ScoreFactor {
>>> name: "ContactActivities",
>>> value: val
>>> })
>>> CREATE (n)-[:HasScoreFactor]->(s) 
>>
>>
>>
>> However, if I define ANY variable like, the query runs unlimited and does 
>> not insert any node at all.
>> I think this is a bug.
>>
>> *WITH timestamp() AS cutoff*
>>> MATCH (n:Contact)--(:ActivityContact)--(ar:ActivityReport)
>>> WHERE ar.StartDateTime > cutoff
>>>  
>>> WITH DISTINCT n, COUNT(ar) AS val
>>> CREATE (s:ScoreFactor {
>>> name: "ContactActivities",
>>> value: val
>>> })
>>> CREATE (n)-[:HasScoreFactor]->(s) 
>>
>>
>> -- 
>> 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 [email protected].
>> 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 [email protected] <javascript:>.
> 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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to