>
> 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.