# Query takes too long time

**URL:** <https://discuss.dgraph.io/t/query-takes-too-long-time/4218>\
**Category:** Users\
**Created:** [March 21, 2019, 2:26pm UTC](https://discuss.dgraph.io/t/query-takes-too-long-time/4218 "2019-03-21T14:26:51Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![sim](https://avatars.discourse-cdn.com/v4/letter/s/bbe5ce/32.png) [@sim](https://discuss.dgraph.io/u/sim)\
**Post date:** [March 21, 2019, 2:26pm UTC](https://discuss.dgraph.io/t/query-takes-too-long-time/4218/1 "2019-03-21T14:26:51Z")

</div>

Hi,  
Let’s say i have nodes A-\>B-\>C and i want to select B nodes with no a\_b and b\_c edges

I do this:

```auto
 {
    var(func: has(B)) {
      id as uid
      cnta as count(~a_b)
      cntc as count(b_c)
   }
   q(func: uid(id)) @filter(eq(val(cnta),0) and eq(val(cntc),0)) {
      uid
   } 
}

```

The query takes for about 11s when set of B is 87000 nodes(too long)  
The same query in neo4j (match(b:B) where not (b)--() return b ) takes for about 500ms only

What is the proper way for the query ?

Thanks

---

<div class="post-metadata">

**Author:** ![MichelDiz](https://yyz1.discourse-cdn.com/flex007/user_avatar/discuss.dgraph.io/micheldiz/32/11873_2.png) [@MichelDiz](https://discuss.dgraph.io/u/MichelDiz)\
**Post date:** [March 21, 2019, 3:50pm UTC](https://discuss.dgraph.io/t/query-takes-too-long-time/4218/2 "2019-03-21T15:50:37Z")

</div>

Why are you using these filters?

I guess this work as intended.

```auto
{
    var(func: has(B)) {
      id as uid
      cnta as ~a_b
      cntc as b_c
   }
   q(func: uid(id, cnta, cntc)) {
      uid
   } 
}

```

---

<div class="post-metadata">

**Author:** ![sim](https://avatars.discourse-cdn.com/v4/letter/s/bbe5ce/32.png) [@sim](https://discuss.dgraph.io/u/sim)\
**Post date:** [March 21, 2019, 4:36pm UTC](https://discuss.dgraph.io/t/query-takes-too-long-time/4218/3 "2019-03-21T16:36:45Z")

</div>

Hi Michael,

Your query gives wrong result. I want to get those of B nodes which do not have edges with A and C. My query gives right result but takes too long time.

---

<div class="post-metadata">

**Author:** ![makitka](https://yyz1.discourse-cdn.com/flex007/user_avatar/discuss.dgraph.io/makitka/32/1307_2.png) [@makitka](https://discuss.dgraph.io/u/makitka)\
**Post date:** [March 21, 2019, 8:21pm UTC](https://discuss.dgraph.io/t/query-takes-too-long-time/4218/4 "2019-03-21T20:21:57Z")

</div>

did you try this one?

```auto
{
a as var(func: has(~a_b))

c as var(func: has(b_c))

b(func: has(B)) @filter(not(uid(a)) and not(uid(c))) {
  uid
}
}

```

---

<div class="post-metadata">

**Author:** ![sim](https://avatars.discourse-cdn.com/v4/letter/s/bbe5ce/32.png) [@sim](https://discuss.dgraph.io/u/sim)\
**Post date:** [March 21, 2019, 9:19pm UTC](https://discuss.dgraph.io/t/query-takes-too-long-time/4218/5 "2019-03-21T21:19:39Z")

</div>

Thank you, Nikita.  
Your query returns result in 369ms

---

<div class="post-metadata">

**Author:** ![makitka](https://yyz1.discourse-cdn.com/flex007/user_avatar/discuss.dgraph.io/makitka/32/1307_2.png) [@makitka](https://discuss.dgraph.io/u/makitka)\
**Post date:** [March 21, 2019, 9:35pm UTC](https://discuss.dgraph.io/t/query-takes-too-long-time/4218/6 "2019-03-21T21:35:54Z")

</div>

or even simplier:

```auto
{
b(func: has(B)) @filter(not(has(~a_b)) and not(has(b_c))) { uid }
}

```

---

<div class="post-metadata">

**Author:** ![sim](https://avatars.discourse-cdn.com/v4/letter/s/bbe5ce/32.png) [@sim](https://discuss.dgraph.io/u/sim)\
**Post date:** [March 21, 2019, 11:01pm UTC](https://discuss.dgraph.io/t/query-takes-too-long-time/4218/7 "2019-03-21T23:01:54Z")

</div>

> [@makitka](#):
>
> { b(func: has(B)) @filter(not(has(~a\_b)) and not(has(b\_c))) { uid } }

And this query returns result in 6,7s(not good)

---

<div class="post-metadata">

**Author:** ![makitka](https://yyz1.discourse-cdn.com/flex007/user_avatar/discuss.dgraph.io/makitka/32/1307_2.png) [@makitka](https://discuss.dgraph.io/u/makitka)\
**Post date:** [March 22, 2019, 5:23am UTC](https://discuss.dgraph.io/t/query-takes-too-long-time/4218/8 "2019-03-22T05:23:20Z")

</div>

ok then:)  
seems like second query is filtering 1 by 1, whereas first one is loading all predicates at once. thats the case

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex007/uploads/dgraph/original/2X/2/2b38fdece2abe5814f2e51bee69d1e67fc304b0a.png) [@system](https://discuss.dgraph.io/u/system)\
**Post date:** [April 21, 2019, 5:23am UTC](https://discuss.dgraph.io/t/query-takes-too-long-time/4218/9 "2019-04-21T05:23:21Z")

</div>

Closed on April 21, 2019, 5:23am UTC

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
