explain.depesz.com

PostgreSQL's explain analyze made readable

Result: oNZd

Settings
# exclusive inclusive rows x rows loops node
1. 13.428 84.808 ↓ 468.8 2,344 1

Gather (cost=1,123.82..7,718.39 rows=5 width=46) (actual time=2.532..84.808 rows=2,344 loops=1)

  • Workers Planned: 2
  • Workers Launched: 2
2. 0.574 71.380 ↓ 390.5 781 3 / 3

Nested Loop (cost=123.82..6,717.89 rows=2 width=46) (actual time=8.414..71.380 rows=781 loops=3)

  • Join Filter: (employees.emp_no = salaries.emp_no)
3. 27.126 67.330 ↑ 1.3 1,159 3 / 3

Hash Join (cost=123.39..5,647.39 rows=1,477 width=46) (actual time=8.358..67.330 rows=1,159 loops=3)

  • Hash Cond: (titles.emp_no = employees.emp_no)
4. 36.167 36.167 ↑ 1.3 147,769 3 / 3

Parallel Seq Scan on titles (cost=0.00..5,039.12 rows=184,712 width=23) (actual time=0.022..36.167 rows=147,769 loops=3)

5. 0.710 4.037 ↑ 1.0 2,344 3 / 3

Hash (cost=93.41..93.41 rows=2,399 width=23) (actual time=4.036..4.037 rows=2,344 loops=3)

  • Buckets: 4,096 Batches: 1 Memory Usage: 159kB
6. 3.327 3.327 ↑ 1.0 2,344 3 / 3

Index Scan using employees_pkey on employees (cost=0.42..93.41 rows=2,399 width=23) (actual time=0.054..3.327 rows=2,344 loops=3)

  • Index Cond: (emp_no < 12345)
7. 3.476 3.476 ↑ 1.0 1 3,476 / 3

Index Scan using salaries_pkey on salaries (cost=0.43..0.71 rows=1 width=20) (actual time=0.003..0.003 rows=1 loops=3,476)

  • Index Cond: ((emp_no = titles.emp_no) AND (from_date = titles.from_date))