2017-04-05 9:28 GMT+02:00 Daniel Westermann <
daniel.westerm...@dbi-services.com>:

> >>what is result of EXPLAIN statement for slow and fast cases?
> >>
> >>regards
> >>
> >>Pavel
>
> For work_mem=32MB
>
> explain (analyze,verbose,buffers)  select count(user_id) from users where
> user_id not in ( select id from ids);
>                                                               QUERY
> PLAN
> ------------------------------------------------------------
> --------------------------------------------------------------------------
>  Aggregate  (cost=83175.01..83175.02 rows=1 width=8) (actual
> time=7945.592..7945.593 rows=1 loops=1)
>    Output: count(users.user_id)
>    Buffers: shared read=29425
>    ->  Seq Scan on public.users  (cost=16925.01..79425.01 rows=1500000
> width=4) (actual time=1928.665..5888.645 rows=2499999 loops=1)
>          Output: users.user_id, users.username
>          Filter: (NOT (hashed SubPlan 1))
>          Rows Removed by Filter: 500001
>          Buffers: shared read=29425
>          SubPlan 1
>            ->  Seq Scan on public.ids  (cost=0.00..14425.01 rows=1000001
> width=4) (actual time=11.111..868.382 rows=1000001 loops=1)
>                  Output: ids.id
>                  Buffers: shared read=4425
>  Planning time: 187.396 ms
>  Execution time: 7948.108 ms
> (14 rows)
>
> Time: 8244.493 ms
>
> For work_mem='16MB' it does not complete with analyze in on hour. For
> explain only:
>
> explain (verbose)  select count(user_id) from users where user_id not in (
> select id from ids);
>                                        QUERY
> PLAN
> ------------------------------------------------------------
> ----------------------------
>  Aggregate  (cost=38748092500.00..38748092500.01 rows=1 width=8)
>    Output: count(users.user_id)
>    ->  Seq Scan on public.users  (cost=0.00..38748088750.00 rows=1500000
> width=4)
>          Output: users.user_id, users.username
>          Filter: (NOT (SubPlan 1))
>          SubPlan 1
>            ->  Materialize  (cost=0.00..23332.01 rows=1000001 width=4)
>                  Output: ids.id
>                  ->  Seq Scan on public.ids  (cost=0.00..14425.01
> rows=1000001 width=4)
>                        Output: ids.id
> (10 rows)
>

There is a materialize op more

do you have a index on ids.id?

Pavel

Reply via email to