explain.depesz.com

PostgreSQL's explain analyze made readable

Result: bwYA

Settings
# exclusive inclusive rows x rows loops node
1. 340.481 1,229.492 ↑ 20.0 60 1

HashAggregate (cost=1,398,106.16..1,398,121.16 rows=1,200 width=14) (actual time=1,229.469..1,229.492 rows=60 loops=1)

  • Group Key: date(calendar.entry), vulnerabilities.severity
  • Buffers: shared hit=28,865 read=425
  • I/O Timings: read=12.990
2. 294.907 889.011 ↑ 33.3 856,220 1

Nested Loop (cost=0.44..1,183,974.67 rows=28,550,865 width=6) (actual time=0.410..889.011 rows=856,220 loops=1)

  • Buffers: shared hit=28,865 read=425
  • I/O Timings: read=12.990
3. 0.024 0.024 ↑ 100.0 10 1

Function Scan on generate_series calendar (cost=0.01..10.01 rows=1,000 width=8) (actual time=0.012..0.024 rows=10 loops=1)

4. 594.080 594.080 ↓ 3.0 85,622 10

Index Scan using i1 on public.vulnerabilities (cost=0.43..827.08 rows=28,551 width=26) (actual time=0.055..59.408 rows=85,622 loops=10)

  • Index Cond: ((vulnerabilities.project_id = 10,300,671) AND (vulnerabilities.created_at <= calendar.entry))
  • Filter: (((vulnerabilities.dismissed_at IS NULL) OR (vulnerabilities.dismissed_at > calendar.entry)) AND ((vulnerabilities.resolved_at IS NULL) OR (vulnerabilities.resolved_at > calendar.entry)))
  • Rows Removed by Filter: 0
  • Buffers: shared hit=28,865 read=425
  • I/O Timings: read=12.990