explain.depesz.com

PostgreSQL's explain analyze made readable

Result: lZsY

Settings
# exclusive inclusive rows x rows loops node
1. 867.220 123,634.261 ↑ 1.0 49,997 1

Hash Left Join (cost=3,024.43..440,698,244.56 rows=50,003 width=1,489) (actual time=106.346..123,634.261 rows=49,997 loops=1)

  • Hash Cond: (empresas_sucursales.type = empresas_sucursales_types.id)
2. 103.548 924.335 ↑ 1.0 49,997 1

Hash Left Join (cost=3,023.38..13,462.87 rows=50,003 width=1,465) (actual time=105.792..924.335 rows=49,997 loops=1)

  • Hash Cond: (empresas_sucursales.id_activ_econ = actividad_econ.id_activ_econ)
3. 92.789 819.865 ↑ 1.0 49,997 1

Hash Left Join (cost=2,998.61..12,750.56 rows=50,003 width=1,411) (actual time=104.858..819.865 rows=49,997 loops=1)

  • Hash Cond: (empresas_sucursales.distrito_id = distritos.id)
4. 98.663 727.039 ↑ 1.0 49,997 1

Hash Left Join (cost=2,997.21..12,062.03 rows=50,003 width=1,379) (actual time=104.810..727.039 rows=49,997 loops=1)

  • Hash Cond: (empresas_sucursales.city_id = city.id)
5. 81.797 628.040 ↑ 1.0 49,997 1

Hash Left Join (cost=2,988.56..11,368.67 rows=50,003 width=1,343) (actual time=104.459..628.040 rows=49,997 loops=1)

  • Hash Cond: (emp.id_categoria_empresa = empresas_categorias.id_categoria_empresa)
6. 95.494 546.224 ↑ 1.0 49,997 1

Hash Left Join (cost=2,987.47..11,175.40 rows=50,003 width=827) (actual time=104.424..546.224 rows=49,997 loops=1)

  • Hash Cond: (emp.type = empresas_types.id)
7. 278.548 450.676 ↑ 1.0 49,997 1

Hash Join (cost=2,985.79..10,486.18 rows=50,003 width=311) (actual time=104.352..450.676 rows=49,997 loops=1)

  • Hash Cond: (empresas_sucursales.empresa_id = emp.id)
8. 68.247 68.247 ↑ 1.0 49,999 1

Seq Scan on empresas_sucursales (cost=0.00..2,594.30 rows=50,006 width=237) (actual time=0.010..68.247 rows=49,999 loops=1)

  • Filter: (type = 1)
  • Rows Removed by Filter: 5625
9. 51.402 103.881 ↓ 1.0 49,859 1

Hash (cost=1,680.57..1,680.57 rows=49,858 width=82) (actual time=103.881..103.881 rows=49,859 loops=1)

  • Buckets: 1024 Batches: 8 Memory Usage: 712kB
10. 52.479 52.479 ↓ 1.0 49,859 1

Seq Scan on empresas emp (cost=0.00..1,680.57 rows=49,858 width=82) (actual time=0.036..52.479 rows=49,859 loops=1)

  • Filter: (((document)::text <> '0'::text) AND ((document)::text <> ''::text) AND ((document)::text <> '-'::text))
  • Rows Removed by Filter: 2
11. 0.020 0.054 ↑ 1.0 30 1

Hash (cost=1.30..1.30 rows=30 width=524) (actual time=0.054..0.054 rows=30 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 2kB
12. 0.034 0.034 ↑ 1.0 30 1

Seq Scan on empresas_types (cost=0.00..1.30 rows=30 width=524) (actual time=0.018..0.034 rows=30 loops=1)

13. 0.004 0.019 ↑ 1.0 4 1

Hash (cost=1.04..1.04 rows=4 width=520) (actual time=0.019..0.019 rows=4 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 1kB
14. 0.015 0.015 ↑ 1.0 4 1

Seq Scan on empresas_categorias (cost=0.00..1.04 rows=4 width=520) (actual time=0.012..0.015 rows=4 loops=1)

15. 0.165 0.336 ↑ 1.0 251 1

Hash (cost=5.51..5.51 rows=251 width=40) (actual time=0.336..0.336 rows=251 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 19kB
16. 0.171 0.171 ↑ 1.0 251 1

Seq Scan on city (cost=0.00..5.51 rows=251 width=40) (actual time=0.004..0.171 rows=251 loops=1)

17. 0.013 0.037 ↑ 1.0 18 1

Hash (cost=1.18..1.18 rows=18 width=40) (actual time=0.037..0.037 rows=18 loops=1)

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

Seq Scan on distritos (cost=0.00..1.18 rows=18 width=40) (actual time=0.014..0.024 rows=18 loops=1)

19. 0.473 0.922 ↑ 1.0 701 1

Hash (cost=16.01..16.01 rows=701 width=58) (actual time=0.922..0.922 rows=701 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 64kB
20. 0.449 0.449 ↑ 1.0 701 1

Seq Scan on actividad_econ (cost=0.00..16.01 rows=701 width=58) (actual time=0.004..0.449 rows=701 loops=1)

21. 0.003 0.017 ↑ 1.0 1 1

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

  • Buckets: 1024 Batches: 1 Memory Usage: 1kB
22. 0.014 0.014 ↑ 1.0 1 1

Seq Scan on empresas_sucursales_types (cost=0.00..1.04 rows=1 width=40) (actual time=0.013..0.014 rows=1 loops=1)

  • Filter: (id = 1)
  • Rows Removed by Filter: 2
23.          

SubPlan (forHash Left Join)

24. 499.970 35,947.843 ↑ 1.0 1 49,997

Aggregate (cost=1,877.48..1,877.49 rows=1 width=8) (actual time=0.718..0.719 rows=1 loops=49,997)

25. 999.940 35,447.873 ↑ 5.8 10 49,997

Nested Loop (cost=5.61..1,877.33 rows=58 width=8) (actual time=0.118..0.709 rows=10 loops=49,997)

26. 249.985 249.985 ↑ 1.0 1 49,997

Index Only Scan using empresas_sucursales_nro_patronal_key on empresas_sucursales es (cost=0.29..4.31 rows=1 width=4) (actual time=0.004..0.005 rows=1 loops=49,997)

  • Index Cond: (nro_patronal = empresas_sucursales.nro_patronal)
  • Heap Fetches: 0
27. 7,901.241 34,197.948 ↑ 5.8 10 49,997

Bitmap Heap Scan on empleados (cost=5.32..1,872.44 rows=58 width=24) (actual time=0.104..0.684 rows=10 loops=49,997)

  • Recheck Cond: (npatronal = empresas_sucursales.nro_patronal)
  • Filter: (SubPlan 1)
  • Rows Removed by Filter: 12
28. 899.946 899.946 ↑ 5.3 22 49,997

Bitmap Index Scan on empleados_npatronal_id_idx (cost=0.00..5.30 rows=117 width=0) (actual time=0.018..0.018 rows=22 loops=49,997)

  • Index Cond: (npatronal = empresas_sucursales.nro_patronal)
29.          

SubPlan (forBitmap Heap Scan)

30. 3,312.621 25,396.761 ↑ 1.0 1 1,104,207

Limit (cost=12.25..12.25 rows=1 width=20) (actual time=0.023..0.023 rows=1 loops=1,104,207)

31. 4,416.828 22,084.140 ↑ 2.0 1 1,104,207

Sort (cost=12.25..12.25 rows=2 width=20) (actual time=0.020..0.020 rows=1 loops=1,104,207)

  • Sort Key: empleados_movimientos.fecha, empleados_movimientos.id
  • Sort Method: top-N heapsort Memory: 25kB
32. 5,523.917 17,667.312 ↑ 1.0 2 1,104,207

Result (cost=0.43..12.24 rows=2 width=20) (actual time=0.009..0.016 rows=2 loops=1,104,207)

  • One-Time Filter: (empleados.empresa_id = emp.id)
33. 12,143.395 12,143.395 ↑ 1.0 2 1,103,945

Index Scan using empleados_movimientos_empleado_id_tipo_fecha_key on empleados_movimientos (cost=0.43..12.23 rows=2 width=20) (actual time=0.007..0.011 rows=2 loops=1,103,945)

  • Index Cond: (empleado_id = empleados.id)
34. 749.955 23,448.593 ↑ 1.0 1 49,997

Aggregate (cost=2,236.69..2,236.72 rows=1 width=16) (actual time=0.469..0.469 rows=1 loops=49,997)

35. 4,610.978 22,698.638 ↑ 5.8 12 49,997

Bitmap Heap Scan on empleados emplea (cost=5.50..2,235.29 rows=70 width=16) (actual time=0.068..0.454 rows=12 loops=49,997)

  • Recheck Cond: (empresa_id = emp.id)
  • Filter: (SubPlan 3)
  • Rows Removed by Filter: 15
36. 1,799.892 1,799.892 ↑ 5.2 27 49,997

Bitmap Index Scan on empleados_empresa_id_npatronal_idx (cost=0.00..5.48 rows=140 width=0) (actual time=0.036..0.036 rows=27 loops=49,997)

  • Index Cond: (empresa_id = emp.id)
37.          

SubPlan (forBitmap Heap Scan)

38. 4,071.942 16,287.768 ↑ 1.0 1 1,357,314

Limit (cost=12.24..12.25 rows=1 width=20) (actual time=0.012..0.012 rows=1 loops=1,357,314)

39. 5,429.256 12,215.826 ↑ 2.0 1 1,357,314

Sort (cost=12.24..12.25 rows=2 width=20) (actual time=0.009..0.009 rows=1 loops=1,357,314)

  • Sort Key: empleados_movimientos_1.fecha, empleados_movimientos_1.id
  • Sort Method: top-N heapsort Memory: 25kB
40. 6,786.570 6,786.570 ↑ 1.0 2 1,357,314

Index Scan using empleados_movimientos_empleado_id_tipo_fecha_key on empleados_movimientos empleados_movimientos_1 (cost=0.43..12.23 rows=2 width=20) (actual time=0.003..0.005 rows=2 loops=1,357,314)

  • Index Cond: (empleado_id = emplea.id)
41. 349.979 34,997.900 ↑ 1.0 1 49,997

Aggregate (cost=2,343.11..2,343.12 rows=1 width=8) (actual time=0.700..0.700 rows=1 loops=49,997)

42. 599.964 34,647.921 ↑ 6.3 6 49,997

Nested Loop (cost=5.61..2,343.02 rows=38 width=8) (actual time=0.095..0.693 rows=6 loops=49,997)

43. 149.991 149.991 ↑ 1.0 1 49,997

Index Only Scan using empresas_sucursales_nro_patronal_key on empresas_sucursales es_1 (cost=0.29..4.31 rows=1 width=4) (actual time=0.003..0.003 rows=1 loops=49,997)

  • Index Cond: (nro_patronal = empresas_sucursales.nro_patronal)
  • Heap Fetches: 0
44. 2,039.036 33,897.966 ↑ 6.3 6 49,997

Nested Loop (cost=5.32..2,338.33 rows=38 width=16) (actual time=0.087..0.678 rows=6 loops=49,997)

45. 3,635.683 20,498.770 ↑ 5.8 10 49,997

Bitmap Heap Scan on empleados empleados_1 (cost=5.32..1,872.44 rows=58 width=24) (actual time=0.042..0.410 rows=10 loops=49,997)

  • Recheck Cond: (npatronal = empresas_sucursales.nro_patronal)
  • Filter: (SubPlan 5)
  • Rows Removed by Filter: 12
46. 299.982 299.982 ↑ 5.3 22 49,997

Bitmap Index Scan on empleados_npatronal_id_idx (cost=0.00..5.30 rows=117 width=0) (actual time=0.006..0.006 rows=22 loops=49,997)

  • Index Cond: (npatronal = empresas_sucursales.nro_patronal)
47.          

SubPlan (forBitmap Heap Scan)

48. 2,208.414 16,563.105 ↑ 1.0 1 1,104,207

Limit (cost=12.25..12.25 rows=1 width=20) (actual time=0.015..0.015 rows=1 loops=1,104,207)

49. 5,521.035 14,354.691 ↑ 2.0 1 1,104,207

Sort (cost=12.25..12.25 rows=2 width=20) (actual time=0.013..0.013 rows=1 loops=1,104,207)

  • Sort Key: empleados_movimientos_2.fecha, empleados_movimientos_2.id
  • Sort Method: top-N heapsort Memory: 25kB
50. 4,417.876 8,833.656 ↑ 1.0 2 1,104,207

Result (cost=0.43..12.24 rows=2 width=20) (actual time=0.005..0.008 rows=2 loops=1,104,207)

  • One-Time Filter: (empleados_1.empresa_id = emp.id)
51. 4,415.780 4,415.780 ↑ 1.0 2 1,103,945

Index Scan using empleados_movimientos_empleado_id_tipo_fecha_key on empleados_movimientos empleados_movimientos_2 (cost=0.43..12.23 rows=2 width=20) (actual time=0.002..0.004 rows=2 loops=1,103,945)

  • Index Cond: (empleado_id = empleados_1.id)
52. 11,360.160 11,360.160 ↑ 1.0 1 493,920

Index Scan using persons_id_idx on persons (cost=0.00..8.02 rows=1 width=8) (actual time=0.022..0.023 rows=1 loops=493,920)

  • Index Cond: (id = empleados_1.persona_id)
  • Rows Removed by Index Recheck: 0
  • Filter: ((sexo)::text = 'M'::text)
  • Rows Removed by Filter: 0
53. 249.985 24,298.542 ↑ 1.0 1 49,997

Aggregate (cost=2,342.89..2,342.90 rows=1 width=8) (actual time=0.486..0.486 rows=1 loops=49,997)

54. 399.976 24,048.557 ↑ 6.7 3 49,997

Nested Loop (cost=5.61..2,342.84 rows=20 width=8) (actual time=0.109..0.481 rows=3 loops=49,997)

55. 149.991 149.991 ↑ 1.0 1 49,997

Index Only Scan using empresas_sucursales_nro_patronal_key on empresas_sucursales es_2 (cost=0.29..4.31 rows=1 width=4) (actual time=0.002..0.003 rows=1 loops=49,997)

  • Index Cond: (nro_patronal = empresas_sucursales.nro_patronal)
  • Heap Fetches: 0
56. 1,774.095 23,498.590 ↑ 6.7 3 49,997

Nested Loop (cost=5.32..2,338.33 rows=20 width=16) (actual time=0.102..0.470 rows=3 loops=49,997)

57. 2,935.725 19,748.815 ↑ 5.8 10 49,997

Bitmap Heap Scan on empleados empleados_2 (cost=5.32..1,872.44 rows=58 width=24) (actual time=0.042..0.395 rows=10 loops=49,997)

  • Recheck Cond: (npatronal = empresas_sucursales.nro_patronal)
  • Filter: (SubPlan 7)
  • Rows Removed by Filter: 12
58. 249.985 249.985 ↑ 5.3 22 49,997

Bitmap Index Scan on empleados_npatronal_id_idx (cost=0.00..5.30 rows=117 width=0) (actual time=0.005..0.005 rows=22 loops=49,997)

  • Index Cond: (npatronal = empresas_sucursales.nro_patronal)
59.          

SubPlan (forBitmap Heap Scan)

60. 3,312.621 16,563.105 ↑ 1.0 1 1,104,207

Limit (cost=12.25..12.25 rows=1 width=20) (actual time=0.014..0.015 rows=1 loops=1,104,207)

61. 4,416.828 13,250.484 ↑ 2.0 1 1,104,207

Sort (cost=12.25..12.25 rows=2 width=20) (actual time=0.012..0.012 rows=1 loops=1,104,207)

  • Sort Key: empleados_movimientos_3.fecha, empleados_movimientos_3.id
  • Sort Method: top-N heapsort Memory: 25kB
62. 4,417.876 8,833.656 ↑ 1.0 2 1,104,207

Result (cost=0.43..12.24 rows=2 width=20) (actual time=0.005..0.008 rows=2 loops=1,104,207)

  • One-Time Filter: (empleados_2.empresa_id = emp.id)
63. 4,415.780 4,415.780 ↑ 1.0 2 1,103,945

Index Scan using empleados_movimientos_empleado_id_tipo_fecha_key on empleados_movimientos empleados_movimientos_3 (cost=0.43..12.23 rows=2 width=20) (actual time=0.002..0.004 rows=2 loops=1,103,945)

  • Index Cond: (empleado_id = empleados_2.id)
64. 1,975.680 1,975.680 ↓ 0.0 0 493,920

Index Scan using persons_id_idx on persons persons_1 (cost=0.00..8.02 rows=1 width=8) (actual time=0.004..0.004 rows=0 loops=493,920)

  • Index Cond: (id = empleados_2.persona_id)
  • Rows Removed by Index Recheck: 0
  • Filter: ((sexo)::text = 'F'::text)
  • Rows Removed by Filter: 1
65. 149.991 3,149.811 ↑ 1.0 1 49,997

Limit (cost=12.92..12.93 rows=1 width=134) (actual time=0.062..0.063 rows=1 loops=49,997)

66. 549.967 2,999.820 ↑ 2.0 1 49,997

Sort (cost=12.92..12.93 rows=2 width=134) (actual time=0.060..0.060 rows=1 loops=49,997)

  • Sort Key: cambio_situacion_empresa.fecha_creacion, cambio_situacion_empresa.id_cambio_situacion_empresa
  • Sort Method: quicksort Memory: 25kB
67. 547.625 2,449.853 ↑ 2.0 1 49,997

Hash Join (cost=11.79..12.91 rows=2 width=134) (actual time=0.046..0.049 rows=1 loops=49,997)

  • Hash Cond: (situacion_emp.id_situacion = cambio_situacion_empresa.situacion_act)
68. 202.330 202.330 ↑ 1.0 7 40,466

Seq Scan on situacion_emp (cost=0.00..1.07 rows=7 width=122) (actual time=0.002..0.005 rows=7 loops=40,466)

69. 349.979 1,699.898 ↑ 2.0 1 49,997

Hash (cost=11.76..11.76 rows=2 width=20) (actual time=0.034..0.034 rows=1 loops=49,997)

  • Buckets: 1024 Batches: 1 Memory Usage: 1kB
70. 849.949 1,349.919 ↑ 2.0 1 49,997

Bitmap Heap Scan on cambio_situacion_empresa (cost=4.02..11.76 rows=2 width=20) (actual time=0.023..0.027 rows=1 loops=49,997)

  • Recheck Cond: (nro_patronal = empresas_sucursales.nro_patronal)
71. 499.970 499.970 ↑ 2.0 1 49,997

Bitmap Index Scan on cambio_situacion_empresa_nro_patronal_idx (cost=0.00..4.01 rows=2 width=0) (actual time=0.010..0.010 rows=1 loops=49,997)

  • Index Cond: (nro_patronal = empresas_sucursales.nro_patronal)