explain.depesz.com

PostgreSQL's explain analyze made readable

Result: QoOY

Settings
# exclusive inclusive rows x rows loops node
1. 0.239 1.445 ↑ 10,114.9 200 1

Nested Loop (cost=10.49..1,703.07 rows=2,022,970 width=548) (actual time=0.132..1.445 rows=200 loops=1)

2. 0.164 0.206 ↓ 2.0 200 1

HashAggregate (cost=10.07..11.07 rows=100 width=4) (actual time=0.108..0.206 rows=200 loops=1)

  • Group Key: unnest(client_logs.change_ids)
3. 0.028 0.042 ↓ 2.0 200 1

ProjectSet (cost=0.29..8.82 rows=100 width=4) (actual time=0.016..0.042 rows=200 loops=1)

4. 0.014 0.014 ↑ 1.0 1 1

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.013..0.014 rows=1 loops=1)

  • Index Cond: ((client_id = 2962) AND (change_date > '2018-07-01'::date) AND (change_date < '2018-07-07'::date))
5. 0.000 1.000 ↑ 2.0 1 200

Append (cost=0.43..16.90 rows=2 width=548) (actual time=0.003..0.005 rows=1 loops=200)

6. 0.600 0.600 ↑ 1.0 1 200

Index Scan using changes_y2018_change_id_change_date_idx on changes_y2018 (cost=0.43..8.45 rows=1 width=548) (actual time=0.003..0.003 rows=1 loops=200)

  • Index Cond: (change_id = (unnest(client_logs.change_ids)))
7. 0.400 0.400 ↓ 0.0 0 200

Index Scan using changes_y2019_change_id_change_date_idx on changes_y2019 (cost=0.43..8.45 rows=1 width=548) (actual time=0.002..0.002 rows=0 loops=200)

  • Index Cond: (change_id = (unnest(client_logs.change_ids)))