explain.depesz.com

PostgreSQL's explain analyze made readable

Result: Zvpk

Settings
# exclusive inclusive rows x rows loops node
1. 0.001 0.777 ↓ 0.0 0 1

Nested Loop Semi Join (cost=2.12..146.63 rows=1 width=108) (actual time=0.777..0.777 rows=0 loops=1)

  • Output: factsets.certname, env.environment, 'paas_inst'::text, ((factsets.stable || factsets.volatile) -> 'paas_inst'::text)
  • Join Filter: (factsets.certname = fs_3.certname)
2.          

CTE inactive_nodes

3. 0.010 0.010 ↑ 1.0 1 1

Seq Scan on public.certnames (cost=0.00..1.06 rows=1 width=35) (actual time=0.008..0.010 rows=1 loops=1)

  • Output: certnames.certname
  • Filter: ((certnames.deactivated IS NOT NULL) OR (certnames.expired IS NOT NULL))
  • Rows Removed by Filter: 5
4. 0.000 0.776 ↓ 0.0 0 1

Nested Loop Semi Join (cost=1.06..116.43 rows=1 width=665) (actual time=0.776..0.776 rows=0 loops=1)

  • Output: factsets.certname, factsets.stable, factsets.volatile, env.environment, fs.certname, fs_1.certname, fs_2.certname, factsets_4.certname
  • Join Filter: (factsets.certname = factsets_4.certname)
5. 0.000 0.776 ↓ 0.0 0 1

Nested Loop Semi Join (cost=0.02..90.63 rows=1 width=630) (actual time=0.776..0.776 rows=0 loops=1)

  • Output: factsets.certname, factsets.stable, factsets.volatile, env.environment, fs.certname, fs_1.certname, fs_2.certname
  • Join Filter: (factsets.certname = fs_2.certname)
6. 0.001 0.776 ↓ 0.0 0 1

Nested Loop Semi Join (cost=0.02..61.50 rows=1 width=595) (actual time=0.775..0.776 rows=0 loops=1)

  • Output: factsets.certname, factsets.stable, factsets.volatile, env.environment, fs.certname, fs_1.certname
  • Join Filter: (factsets.certname = fs_1.certname)
7. 0.000 0.775 ↓ 0.0 0 1

Nested Loop Semi Join (cost=0.02..32.37 rows=1 width=560) (actual time=0.775..0.775 rows=0 loops=1)

  • Output: factsets.certname, factsets.stable, factsets.volatile, env.environment, fs.certname
  • Join Filter: (factsets.certname = fs.certname)
8. 0.001 0.775 ↓ 0.0 0 1

Nested Loop Left Join (cost=0.02..3.23 rows=1 width=525) (actual time=0.775..0.775 rows=0 loops=1)

  • Output: factsets.certname, factsets.stable, factsets.volatile, env.environment
  • Inner Unique: true
  • Join Filter: (factsets.environment_id = env.id)
9. 0.762 0.774 ↓ 0.0 0 1

Seq Scan on public.factsets (cost=0.02..2.19 rows=1 width=524) (actual time=0.774..0.774 rows=0 loops=1)

  • Output: factsets.id, factsets.certname, factsets."timestamp", factsets.environment_id, factsets.hash, factsets.producer_timestamp, factsets.producer_id, factsets.paths_hash, factsets.stable, factsets.stable_hash, factsets.volatile
  • Filter: ((NOT (hashed SubPlan 2)) AND ((factsets.stable || factsets.volatile) ? 'paas_inst'::text) AND ((((factsets.stable || factsets.volatile) -> 'paas_inst'::text) #>> '{}'::text[]) ~ '^'::text))
  • Rows Removed by Filter: 6
10.          

SubPlan (for Seq Scan)

11. 0.012 0.012 ↑ 1.0 1 1

CTE Scan on inactive_nodes (cost=0.00..0.02 rows=1 width=32) (actual time=0.010..0.012 rows=1 loops=1)

  • Output: inactive_nodes.certname
12. 0.000 0.000 ↓ 0.0 0

Seq Scan on public.environments env (cost=0.00..1.02 rows=2 width=17) (never executed)

  • Output: env.id, env.environment
13. 0.000 0.000 ↓ 0.0 0

Subquery Scan on fs (cost=0.00..29.12 rows=1 width=43) (never executed)

  • Output: fs.certname, fs.environment_id, fs.key, fs.value
  • Filter: ((fs.key = 'block_2w'::text) AND (fs.value = '"no"'::jsonb) AND (jsonb_typeof(fs.value) = 'string'::text))
14. 0.000 0.000 ↓ 0.0 0

Result (cost=0.00..17.12 rows=600 width=107) (never executed)

  • Output: factsets_1.certname, factsets_1.environment_id, ((jsonb_each((factsets_1.stable || factsets_1.volatile)))).key, ((jsonb_each((factsets_1.stable || factsets_1.volatile)))).value
15. 0.000 0.000 ↓ 0.0 0

ProjectSet (cost=0.00..5.12 rows=600 width=75) (never executed)

  • Output: jsonb_each((factsets_1.stable || factsets_1.volatile)), factsets_1.certname, factsets_1.environment_id
16. 0.000 0.000 ↓ 0.0 0

Seq Scan on public.factsets factsets_1 (cost=0.00..2.06 rows=6 width=524) (never executed)

  • Output: factsets_1.id, factsets_1.certname, factsets_1."timestamp", factsets_1.environment_id, factsets_1.hash, factsets_1.producer_timestamp, factsets_1.producer_id, factsets_1.paths_hash, factsets_1.stable, factsets_1.stable_hash, factsets_1.volatile
17. 0.000 0.000 ↓ 0.0 0

Subquery Scan on fs_1 (cost=0.00..29.12 rows=1 width=43) (never executed)

  • Output: fs_1.certname, fs_1.environment_id, fs_1.key, fs_1.value
  • Filter: ((fs_1.value = '"no"'::jsonb) AND (fs_1.key = 'block_paas'::text) AND (jsonb_typeof(fs_1.value) = 'string'::text))
18. 0.000 0.000 ↓ 0.0 0

Result (cost=0.00..17.12 rows=600 width=107) (never executed)

  • Output: factsets_2.certname, factsets_2.environment_id, ((jsonb_each((factsets_2.stable || factsets_2.volatile)))).key, ((jsonb_each((factsets_2.stable || factsets_2.volatile)))).value
19. 0.000 0.000 ↓ 0.0 0

ProjectSet (cost=0.00..5.12 rows=600 width=75) (never executed)

  • Output: jsonb_each((factsets_2.stable || factsets_2.volatile)), factsets_2.certname, factsets_2.environment_id
20. 0.000 0.000 ↓ 0.0 0

Seq Scan on public.factsets factsets_2 (cost=0.00..2.06 rows=6 width=524) (never executed)

  • Output: factsets_2.id, factsets_2.certname, factsets_2."timestamp", factsets_2.environment_id, factsets_2.hash, factsets_2.producer_timestamp, factsets_2.producer_id, factsets_2.paths_hash, factsets_2.stable, factsets_2.stable_hash, factsets_2.volatile
21. 0.000 0.000 ↓ 0.0 0

Subquery Scan on fs_2 (cost=0.00..29.12 rows=1 width=43) (never executed)

  • Output: fs_2.certname, fs_2.environment_id, fs_2.key, fs_2.value
  • Filter: ((fs_2.key = 'role'::text) AND (fs_2.value = '"wls"'::jsonb) AND (jsonb_typeof(fs_2.value) = 'string'::text))
22. 0.000 0.000 ↓ 0.0 0

Result (cost=0.00..17.12 rows=600 width=107) (never executed)

  • Output: factsets_3.certname, factsets_3.environment_id, ((jsonb_each((factsets_3.stable || factsets_3.volatile)))).key, ((jsonb_each((factsets_3.stable || factsets_3.volatile)))).value
23. 0.000 0.000 ↓ 0.0 0

ProjectSet (cost=0.00..5.12 rows=600 width=75) (never executed)

  • Output: jsonb_each((factsets_3.stable || factsets_3.volatile)), factsets_3.certname, factsets_3.environment_id
24. 0.000 0.000 ↓ 0.0 0

Seq Scan on public.factsets factsets_3 (cost=0.00..2.06 rows=6 width=524) (never executed)

  • Output: factsets_3.id, factsets_3.certname, factsets_3."timestamp", factsets_3.environment_id, factsets_3.hash, factsets_3.producer_timestamp, factsets_3.producer_id, factsets_3.paths_hash, factsets_3.stable, factsets_3.stable_hash, factsets_3.volatile
25. 0.000 0.000 ↓ 0.0 0

Hash Join (cost=1.04..25.77 rows=3 width=35) (never executed)

  • Output: factsets_4.certname
  • Inner Unique: true
  • Hash Cond: (factsets_4.environment_id = env_1.id)
26. 0.000 0.000 ↓ 0.0 0

Result (cost=0.00..17.12 rows=600 width=107) (never executed)

  • Output: factsets_4.certname, factsets_4.environment_id, ((jsonb_each((factsets_4.stable || factsets_4.volatile)))).key, ((jsonb_each((factsets_4.stable || factsets_4.volatile)))).value
27. 0.000 0.000 ↓ 0.0 0

ProjectSet (cost=0.00..5.12 rows=600 width=75) (never executed)

  • Output: jsonb_each((factsets_4.stable || factsets_4.volatile)), factsets_4.certname, factsets_4.environment_id
28. 0.000 0.000 ↓ 0.0 0

Seq Scan on public.factsets factsets_4 (cost=0.00..2.06 rows=6 width=524) (never executed)

  • Output: factsets_4.id, factsets_4.certname, factsets_4."timestamp", factsets_4.environment_id, factsets_4.hash, factsets_4.producer_timestamp, factsets_4.producer_id, factsets_4.paths_hash, factsets_4.stable, factsets_4.stable_hash, factsets_4.volatile
29. 0.000 0.000 ↓ 0.0 0

Hash (cost=1.02..1.02 rows=1 width=8) (never executed)

  • Output: env_1.id
30. 0.000 0.000 ↓ 0.0 0

Seq Scan on public.environments env_1 (cost=0.00..1.02 rows=1 width=8) (never executed)

  • Output: env_1.id
  • Filter: (env_1.environment = 'sys'::text)
31. 0.000 0.000 ↓ 0.0 0

Subquery Scan on fs_3 (cost=0.00..29.12 rows=1 width=43) (never executed)

  • Output: fs_3.certname, fs_3.environment_id, fs_3.key, fs_3.value
  • Filter: ((fs_3.key = 'business_area'::text) AND (fs_3.value = '"et"'::jsonb) AND (jsonb_typeof(fs_3.value) = 'string'::text))
32. 0.000 0.000 ↓ 0.0 0

Result (cost=0.00..17.12 rows=600 width=107) (never executed)

  • Output: factsets_5.certname, factsets_5.environment_id, ((jsonb_each((factsets_5.stable || factsets_5.volatile)))).key, ((jsonb_each((factsets_5.stable || factsets_5.volatile)))).value
33. 0.000 0.000 ↓ 0.0 0

ProjectSet (cost=0.00..5.12 rows=600 width=75) (never executed)

  • Output: jsonb_each((factsets_5.stable || factsets_5.volatile)), factsets_5.certname, factsets_5.environment_id
34. 0.000 0.000 ↓ 0.0 0

Seq Scan on public.factsets factsets_5 (cost=0.00..2.06 rows=6 width=524) (never executed)

  • Output: factsets_5.id, factsets_5.certname, factsets_5."timestamp", factsets_5.environment_id, factsets_5.hash, factsets_5.producer_timestamp, factsets_5.producer_id, factsets_5.paths_hash, factsets_5.stable, factsets_5.stable_hash, factsets_5.volatile