explain.depesz.com

PostgreSQL's explain analyze made readable

Result: jOjP

Settings
# exclusive inclusive rows x rows loops node
1. 15.884 576.179 ↑ 77.8 200 1

Gather (cost=1,011.07..99,182.27 rows=15,567 width=546) (actual time=560.917..576.179 rows=200 loops=1)

  • Workers Planned: 2
  • Workers Launched: 2
2. 5.864 560.295 ↑ 96.8 67 3

Hash Semi Join (cost=11.07..96,625.57 rows=6,486 width=546) (actual time=346.603..560.295 rows=67 loops=3)

  • Hash Cond: (changes_y2018.change_id = (unnest(client_logs.change_ids)))
3. 1.148 554.309 ↑ 1.3 10,000 3

Parallel Append (cost=0.00..96,508.29 rows=12,972 width=546) (actual time=236.983..554.309 rows=10,000 loops=3)

4. 553.161 553.161 ↑ 1.3 10,000 3

Parallel Seq Scan on changes_y2018 (cost=0.00..96,443.43 rows=12,972 width=546) (actual time=236.981..553.161 rows=10,000 loops=3)

  • Filter: ((change_date > '2018-07-01'::date) AND (change_date < '2018-07-07'::date))
  • Rows Removed by Filter: 599333
5. 0.047 0.122 ↓ 2.0 200 3

Hash (cost=9.82..9.82 rows=100 width=4) (actual time=0.121..0.122 rows=200 loops=3)

  • Buckets: 1024 Batches: 1 Memory Usage: 16kB
6. 0.033 0.075 ↓ 2.0 200 3

ProjectSet (cost=0.29..8.82 rows=100 width=4) (actual time=0.047..0.075 rows=200 loops=3)

7. 0.042 0.042 ↑ 1.0 1 3

Index Scan using client_logs_client_id_by_date_index on client_logs (cost=0.29..8.31 rows=1 width=827) (actual time=0.041..0.042 rows=1 loops=3)

  • Index Cond: ((client_id = 2962) AND (change_date > '2018-07-01'::date) AND (change_date < '2018-07-07'::date))