explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 6YfP

Settings
# exclusive inclusive rows x rows loops node
1. 145.342 10,765.695 ↓ 1.1 58,964 1

Append (cost=233,626.51..240,760.78 rows=53,043 width=579) (actual time=9,366.388..10,765.695 rows=58,964 loops=1)

2. 1,791.606 9,501.341 ↓ 1.0 52,351 1

Sort (cost=233,626.51..233,757.20 rows=52,277 width=461) (actual time=9,366.386..9,501.341 rows=52,351 loops=1)

  • Sort Key: empresas_sucursales.nro_patronal
  • Sort Method: external merge Disk: 19864kB
3. 507.676 7,709.735 ↓ 1.0 52,351 1

Hash Left Join (cost=3,149.63..221,742.09 rows=52,277 width=461) (actual time=690.082..7,709.735 rows=52,351 loops=1)

  • Hash Cond: (empresas_sucursales.id_tipo_inscripcion = empresas_tipo_inscripcion.id_tipo_inscripcion)
4. 256.099 3,380.424 ↓ 1.0 52,351 1

Hash Left Join (cost=3,148.56..10,900.24 rows=52,277 width=441) (actual time=689.816..3,380.424 rows=52,351 loops=1)

  • Hash Cond: (empresas_sucursales.type = empresas_sucursales_types.id)
5. 287.037 3,124.313 ↓ 1.0 52,351 1

Hash Left Join (cost=3,147.51..10,180.38 rows=52,277 width=434) (actual time=689.786..3,124.313 rows=52,351 loops=1)

  • Hash Cond: (empresas_sucursales.id_activ_econ = actividad_econ.id_activ_econ)
6. 243.050 2,834.904 ↓ 1.0 52,351 1

Hash Left Join (cost=3,122.09..9,436.14 rows=52,277 width=380) (actual time=687.403..2,834.904 rows=52,351 loops=1)

  • Hash Cond: (empresas_sucursales.distrito_id = distritos.id)
7. 298.291 2,591.809 ↓ 1.0 52,351 1

Hash Left Join (cost=3,120.68..8,716.33 rows=52,277 width=369) (actual time=687.345..2,591.809 rows=52,351 loops=1)

  • Hash Cond: (empresas_sucursales.city_id = city.id)
8. 243.598 2,292.936 ↓ 1.0 52,351 1

Hash Left Join (cost=3,107.97..7,987.11 rows=52,277 width=333) (actual time=686.749..2,292.936 rows=52,351 loops=1)

  • Hash Cond: (emp.id_categoria_empresa = empresas_categorias.id_categoria_empresa)
9. 296.006 2,049.321 ↓ 1.0 52,351 1

Hash Left Join (cost=3,106.88..7,759.82 rows=52,277 width=319) (actual time=686.717..2,049.321 rows=52,351 loops=1)

  • Hash Cond: (emp.type = empresas_types.id)
10. 466.514 1,753.254 ↓ 1.0 52,351 1

Hash Join (cost=3,105.20..7,039.34 rows=52,277 width=304) (actual time=686.636..1,753.254 rows=52,351 loops=1)

  • Hash Cond: (empresas_sucursales.empresa_id = emp.id)
11. 600.152 600.152 ↓ 1.0 52,353 1

Seq Scan on empresas_sucursales (cost=0.00..2,888.56 rows=52,280 width=239) (actual time=0.022..600.152 rows=52,353 loops=1)

  • Filter: (type = 1)
  • Rows Removed by Filter: 6652
12. 270.218 686.588 ↓ 1.0 52,210 1

Hash (cost=2,452.64..2,452.64 rows=52,205 width=81) (actual time=686.588..686.588 rows=52,210 loops=1)

  • Buckets: 8192 Batches: 1 Memory Usage: 5856kB
13. 416.370 416.370 ↓ 1.0 52,210 1

Seq Scan on empresas emp (cost=0.00..2,452.64 rows=52,205 width=81) (actual time=0.019..416.370 rows=52,210 loops=1)

  • Filter: (((document)::text <> '0'::text) AND ((document)::text <> ''::text) AND ((document)::text <> '-'::text))
  • Rows Removed by Filter: 2
14. 0.032 0.061 ↑ 1.0 30 1

Hash (cost=1.30..1.30 rows=30 width=23) (actual time=0.061..0.061 rows=30 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 2kB
15. 0.029 0.029 ↑ 1.0 30 1

Seq Scan on empresas_types (cost=0.00..1.30 rows=30 width=23) (actual time=0.005..0.029 rows=30 loops=1)

16. 0.007 0.017 ↑ 1.0 4 1

Hash (cost=1.04..1.04 rows=4 width=18) (actual time=0.017..0.017 rows=4 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 1kB
17. 0.010 0.010 ↑ 1.0 4 1

Seq Scan on empresas_categorias (cost=0.00..1.04 rows=4 width=18) (actual time=0.005..0.010 rows=4 loops=1)

18. 0.324 0.582 ↑ 1.0 254 1

Hash (cost=9.54..9.54 rows=254 width=40) (actual time=0.582..0.582 rows=254 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 19kB
19. 0.258 0.258 ↑ 1.0 254 1

Seq Scan on city (cost=0.00..9.54 rows=254 width=40) (actual time=0.006..0.258 rows=254 loops=1)

20. 0.022 0.045 ↑ 1.0 18 1

Hash (cost=1.18..1.18 rows=18 width=19) (actual time=0.045..0.045 rows=18 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 1kB
21. 0.023 0.023 ↑ 1.0 18 1

Seq Scan on distritos (cost=0.00..1.18 rows=18 width=19) (actual time=0.005..0.023 rows=18 loops=1)

22. 1.132 2.372 ↑ 1.0 730 1

Hash (cost=16.30..16.30 rows=730 width=58) (actual time=2.372..2.372 rows=730 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 66kB
23. 1.240 1.240 ↑ 1.0 730 1

Seq Scan on actividad_econ (cost=0.00..16.30 rows=730 width=58) (actual time=0.005..1.240 rows=730 loops=1)

24. 0.004 0.012 ↑ 1.0 1 1

Hash (cost=1.04..1.04 rows=1 width=23) (actual time=0.012..0.012 rows=1 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 1kB
25. 0.008 0.008 ↑ 1.0 1 1

Seq Scan on empresas_sucursales_types (cost=0.00..1.04 rows=1 width=23) (actual time=0.007..0.008 rows=1 loops=1)

  • Filter: (id = 1)
  • Rows Removed by Filter: 2
26. 0.006 0.012 ↑ 1.0 3 1

Hash (cost=1.03..1.03 rows=3 width=24) (actual time=0.012..0.012 rows=3 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 1kB
27. 0.006 0.006 ↑ 1.0 3 1

Seq Scan on empresas_tipo_inscripcion (cost=0.00..1.03 rows=3 width=24) (actual time=0.004..0.006 rows=3 loops=1)

28.          

SubPlan (forHash Left Join)

29. 314.106 3,821.623 ↑ 1.0 1 52,351

Limit (cost=0.42..4.02 rows=1 width=27) (actual time=0.072..0.073 rows=1 loops=52,351)

30. 758.053 3,507.517 ↑ 2.0 1 52,351

Nested Loop (cost=0.42..7.62 rows=2 width=27) (actual time=0.067..0.067 rows=1 loops=52,351)

  • Join Filter: (cambio_situacion_empresa.situacion_act = situacion_emp.id_situacion)
  • Rows Removed by Join Filter: 3
31. 2,355.795 2,355.795 ↑ 2.0 1 52,351

Index Scan using cambio_situacion_empresa_nro_patronal_fecha_creacion_id_cam_idx on cambio_situacion_empresa (cost=0.42..6.32 rows=2 width=20) (actual time=0.045..0.045 rows=1 loops=52,351)

  • Index Cond: (nro_patronal = empresas_sucursales.nro_patronal)
32. 393.656 393.669 ↑ 1.4 5 43,741

Materialize (cost=0.00..1.10 rows=7 width=15) (actual time=0.003..0.009 rows=5 loops=43,741)

33. 0.013 0.013 ↑ 1.0 7 1

Seq Scan on situacion_emp (cost=0.00..1.07 rows=7 width=15) (actual time=0.006..0.013 rows=7 loops=1)

34. 65.839 1,119.012 ↓ 8.6 6,613 1

Nested Loop Left Join (cost=14.82..6,473.15 rows=766 width=463) (actual time=0.977..1,119.012 rows=6,613 loops=1)

35. 66.399 748.975 ↓ 8.6 6,613 1

Nested Loop Left Join (cost=14.82..3,363.23 rows=766 width=443) (actual time=0.868..748.975 rows=6,613 loops=1)

36. 28.132 629.672 ↓ 8.6 6,613 1

Hash Left Join (cost=14.82..3,312.16 rows=766 width=389) (actual time=0.798..629.672 rows=6,613 loops=1)

  • Hash Cond: (empresas_sucursales_1.distrito_id = distritos_1.id)
37. 31.001 601.491 ↓ 8.6 6,613 1

Nested Loop Left Join (cost=13.42..3,300.23 rows=766 width=378) (actual time=0.733..601.491 rows=6,613 loops=1)

38. 52.384 537.425 ↓ 8.6 6,613 1

Nested Loop Left Join (cost=13.42..3,279.02 rows=766 width=364) (actual time=0.726..537.425 rows=6,613 loops=1)

39. 36.430 425.524 ↓ 8.6 6,613 1

Nested Loop (cost=13.42..3,257.81 rows=766 width=349) (actual time=0.688..425.524 rows=6,613 loops=1)

40. 17.993 129.666 ↓ 8.7 6,652 1

Hash Left Join (cost=13.13..1,488.95 rows=766 width=345) (actual time=0.638..129.666 rows=6,652 loops=1)

  • Hash Cond: (empresas_sucursales_1.city_id = city_1.id)
41. 14.638 111.142 ↓ 8.7 6,652 1

Merge Right Join (cost=0.41..1,465.73 rows=766 width=309) (actual time=0.082..111.142 rows=6,652 loops=1)

  • Merge Cond: (empresas_sucursales_types_1.id = empresas_sucursales_1.type)
42. 0.032 0.032 ↑ 1.0 3 1

Index Scan using empresas_sucursales_types_pkey on empresas_sucursales_types empresas_sucursales_types_1 (cost=0.13..6.17 rows=3 width=23) (actual time=0.028..0.032 rows=3 loops=1)

43. 96.472 96.472 ↓ 8.7 6,652 1

Index Scan using empresas_sucursales_type_idx on empresas_sucursales empresas_sucursales_1 (cost=0.28..1,449.97 rows=766 width=302) (actual time=0.041..96.472 rows=6,652 loops=1)

44. 0.269 0.531 ↑ 1.0 254 1

Hash (cost=9.54..9.54 rows=254 width=40) (actual time=0.531..0.531 rows=254 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 19kB
45. 0.262 0.262 ↑ 1.0 254 1

Seq Scan on city city_1 (cost=0.00..9.54 rows=254 width=40) (actual time=0.007..0.262 rows=254 loops=1)

46. 259.428 259.428 ↑ 1.0 1 6,652

Index Scan using empresas_pk on empresas emp_1 (cost=0.29..2.30 rows=1 width=20) (actual time=0.036..0.039 rows=1 loops=6,652)

  • Index Cond: (id = empresas_sucursales_1.empresa_id)
  • Filter: (((document)::text <> '0'::text) AND ((document)::text <> ''::text) AND ((document)::text <> '-'::text))
  • Rows Removed by Filter: 0
47. 59.517 59.517 ↑ 1.0 1 6,613

Index Scan using empresas_types_id_idx on empresas_types empresas_types_1 (cost=0.00..0.02 rows=1 width=23) (actual time=0.007..0.009 rows=1 loops=6,613)

  • Index Cond: (emp_1.type = id)
48. 33.065 33.065 ↓ 0.0 0 6,613

Index Scan using empresas_categorias_id_categoria_empresa_idx on empresas_categorias empresas_categorias_1 (cost=0.00..0.02 rows=1 width=18) (actual time=0.005..0.005 rows=0 loops=6,613)

  • Index Cond: (emp_1.id_categoria_empresa = id_categoria_empresa)
49. 0.027 0.049 ↑ 1.0 18 1

Hash (cost=1.18..1.18 rows=18 width=19) (actual time=0.049..0.049 rows=18 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 1kB
50. 0.022 0.022 ↑ 1.0 18 1

Seq Scan on distritos distritos_1 (cost=0.00..1.18 rows=18 width=19) (actual time=0.005..0.022 rows=18 loops=1)

51. 52.904 52.904 ↑ 1.0 1 6,613

Index Scan using actividad_econ_id_activ_econ_idx on actividad_econ actividad_econ_1 (cost=0.00..0.06 rows=1 width=58) (actual time=0.007..0.008 rows=1 loops=6,613)

  • Index Cond: (empresas_sucursales_1.id_activ_econ = id_activ_econ)
52. 59.517 59.517 ↑ 1.0 1 6,613

Index Scan using empresas_tipo_inscripcion_id_tipo_inscripcion_idx on empresas_tipo_inscripcion empresas_tipo_inscripcion_1 (cost=0.00..0.03 rows=1 width=24) (actual time=0.006..0.009 rows=1 loops=6,613)

  • Index Cond: (empresas_sucursales_1.id_tipo_inscripcion = id_tipo_inscripcion)
53.          

SubPlan (forNested Loop Left Join)

54. 26.452 244.681 ↑ 1.0 1 6,613

Limit (cost=0.42..4.02 rows=1 width=27) (actual time=0.035..0.037 rows=1 loops=6,613)

55. 55.076 218.229 ↑ 2.0 1 6,613

Nested Loop (cost=0.42..7.62 rows=2 width=27) (actual time=0.033..0.033 rows=1 loops=6,613)

  • Join Filter: (cambio_situacion_empresa_1.situacion_act = situacion_emp_1.id_situacion)
  • Rows Removed by Join Filter: 4
56. 125.647 125.647 ↑ 2.0 1 6,613

Index Scan using cambio_situacion_empresa_nro_patronal_fecha_creacion_id_cam_idx on cambio_situacion_empresa cambio_situacion_empresa_1 (cost=0.42..6.32 rows=2 width=20) (actual time=0.019..0.019 rows=1 loops=6,613)

  • Index Cond: (nro_patronal = empresas_sucursales_1.nro_patronal)
57. 37.495 37.506 ↑ 1.4 5 6,251

Materialize (cost=0.00..1.10 rows=7 width=15) (actual time=0.002..0.006 rows=5 loops=6,251)

58. 0.011 0.011 ↑ 1.2 6 1

Seq Scan on situacion_emp situacion_emp_1 (cost=0.00..1.07 rows=7 width=15) (actual time=0.004..0.011 rows=6 loops=1)