explain.depesz.com

PostgreSQL's explain analyze made readable

Result: DYJ2

Settings
# exclusive inclusive rows x rows loops node
1. 0.000 0.000 ↓ 0.0

Unique (cost=9,490,088.00..9,490,088.03 rows=1 width=162) (actual rows= loops=)

  • Output: operatione0_.id, ((((affaireent2_.code)::text || ' - '::text) || (tiersentit3_.abrege)::text)), (('now'::cstring)::date), tiersentit3_.raisonsociale, affaireent2_.descriptif, ((SubPlan 1)), operatione0_.libelle, ((SubPlan 2)), operatione0_2_.datedebutprevue, affaireent2_.code, affaireent2_.id
2.          

Initplan (forUnique)

3. 0.000 0.000 ↓ 0.0

Seq Scan on public.dm1_utilisateur utilisateu26_ (cost=0.00..7.88 rows=1 width=33) (actual rows= loops=)

  • Output: utilisateu26_.id_employe
  • Filter: ((utilisateu26_.id)::text = '4028b1ee4b569c52014b59e98c580515'::text)
4. 0.000 0.000 ↓ 0.0

Sort (cost=9,490,080.12..9,490,080.13 rows=1 width=162) (actual rows= loops=)

  • Output: operatione0_.id, ((((affaireent2_.code)::text || ' - '::text) || (tiersentit3_.abrege)::text)), (('now'::cstring)::date), tiersentit3_.raisonsociale, affaireent2_.descriptif, ((SubPlan 1)), operatione0_.libelle, ((SubPlan 2)), operatione0_2_.datedebutprevue, affaireent2_.code, affaireent2_.id
  • Sort Key: operatione0_2_.datedebutprevue, operatione0_.id, ((((affaireent2_.code)::text || ' - '::text) || (tiersentit3_.abrege)::text)), tiersentit3_.raisonsociale, affaireent2_.descriptif, ((SubPlan 1)), operatione0_.libelle, ((SubPlan 2)), affaireent2_.code, affaireent2_.id
5. 0.000 0.000 ↓ 0.0

Result (cost=74,774.44..9,490,080.11 rows=1 width=162) (actual rows= loops=)

  • Output: operatione0_.id, (((affaireent2_.code)::text || ' - '::text) || (tiersentit3_.abrege)::text), ('now'::cstring)::date, tiersentit3_.raisonsociale, affaireent2_.descriptif, (SubPlan 1), operatione0_.libelle, (SubPlan 2), operatione0_2_.datedebutprevue, affaireent2_.code, affaireent2_.id
  • One-Time Filter: (('now'::cstring)::date <= '2019-04-09'::date)
6. 0.000 0.000 ↓ 0.0

Nested Loop Semi Join (cost=74,774.44..9,490,026.90 rows=1 width=162) (actual rows= loops=)

  • Output: operatione0_.id, operatione0_.libelle, operatione0_2_.datedebutprevue, affaireent2_.code, affaireent2_.descriptif, affaireent2_.id, tiersentit3_.abrege, tiersentit3_.raisonsociale
7. 0.000 0.000 ↓ 0.0

Nested Loop Semi Join (cost=74,774.44..9,490,020.63 rows=1 width=391) (actual rows= loops=)

  • Output: operatione0_.id, operatione0_.libelle, operatione0_2_.datedebutprevue, affaireent2_.code, affaireent2_.descriptif, affaireent2_.id, tiersentit3_.abrege, tiersentit3_.raisonsociale, attributsu13_.id_operation, operationo12_.id, operationo12_1_.id, attributsu5_.id_operation, operationo14_1_.id, attributsu15_.id_operation, operationo14_.id
8. 0.000 0.000 ↓ 0.0

Nested Loop (cost=74,774.44..9,489,819.50 rows=64 width=293) (actual rows= loops=)

  • Output: operatione0_.id, operatione0_.libelle, operatione0_2_.datedebutprevue, affaireent2_.code, affaireent2_.descriptif, affaireent2_.id, tiersentit3_.abrege, tiersentit3_.raisonsociale, attributsu13_.id_operation, operationo12_.id, operationo12_1_.id, attributsu5_.id_operation
9. 0.000 0.000 ↓ 0.0

Hash Semi Join (cost=74,774.44..9,489,213.18 rows=263 width=260) (actual rows= loops=)

  • Output: operatione0_.id, operatione0_.libelle, operatione0_2_.datedebutprevue, affaireent2_.code, affaireent2_.descriptif, affaireent2_.id, tiersentit3_.abrege, tiersentit3_.raisonsociale, attributsu13_.id_operation, operationo12_.id, operationo12_1_.id
  • Hash Cond: ((operatione0_.id)::text = (operationo12_.id)::text)
10. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=22,703.01..9,436,253.20 rows=337,380 width=162) (actual rows= loops=)

  • Output: operatione0_.id, operatione0_.libelle, operatione0_2_.datedebutprevue, affaireent2_.code, affaireent2_.descriptif, affaireent2_.id, tiersentit3_.abrege, tiersentit3_.raisonsociale
  • Hash Cond: ((operatione0_.id)::text = (operatione0_1_.id)::text)
11. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=11,841.76..9,418,929.77 rows=337,380 width=162) (actual rows= loops=)

  • Output: operatione0_.id, operatione0_.libelle, operatione0_2_.datedebutprevue, affaireent2_.code, affaireent2_.descriptif, affaireent2_.id, tiersentit3_.abrege, tiersentit3_.raisonsociale
  • Hash Cond: ((operatione0_.id_centrecharge)::text = (centrechar4_.id)::text)
  • Filter: ((SubPlan 4) OR (hashed SubPlan 5) OR (SubPlan 7))
12. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=11,821.64..37,399.10 rows=385,577 width=195) (actual rows= loops=)

  • Output: operatione0_.id, operatione0_.libelle, operatione0_.id_centrecharge, operatione0_2_.datedebutprevue, affaireent2_.code, affaireent2_.descriptif, affaireent2_.id, tiersentit3_.abrege, tiersentit3_.raisonsociale
  • Hash Cond: ((operatione0_.id)::text = (operatione0_3_.id)::text)
13. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=11,820.62..35,952.15 rows=385,577 width=195) (actual rows= loops=)

  • Output: operatione0_.id, operatione0_.libelle, operatione0_.id_centrecharge, operatione0_2_.datedebutprevue, affaireent2_.code, affaireent2_.descriptif, affaireent2_.id, tiersentit3_.abrege, tiersentit3_.raisonsociale
  • Hash Cond: ((operatione0_.id)::text = (operatione0_2_.id)::text)
14. 0.000 0.000 ↓ 0.0

Seq Scan on public.dm1_operation operatione0_ (cost=0.00..18,021.20 rows=385,577 width=101) (actual rows= loops=)

  • Output: operatione0_.id, operatione0_.datefinvalidite, operatione0_.libelle, operatione0_.soustraitance, operatione0_.delairealisation, operatione0_.effectifoperateur, operatione0_.id_centrecharge, operatione0_.effectifregleur, operatione0_.attenteamont_valeur, operatione0_.attenteaval_valeur, operatione0_.typechevauchement, operatione0_.quantitechevauchement_valeur, operatione0_.nombreressource, operatione0_.etiquetteregroupement, operatione0_.id_tarifsoustraitance, operatione0_.controlequalite, operatione0_.datecreationsysteme, operatione0_.datemodificationsysteme, operatione0_.id_modifieparsysteme, operatione0_.id_creeparsysteme, operatione0_.statutphaseprocedurale, operatione0_.nature, operatione0_.id_operationmere, operatione0_.identifiantedi
  • Filter: ((operatione0_.datefinvalidite IS NULL) AND ((operatione0_.id)::text !~~ 'DefaultRecord_%'::text))
15. 0.000 0.000 ↓ 0.0

Hash (cost=10,207.18..10,207.18 rows=129,075 width=127) (actual rows= loops=)

  • Output: operatione0_2_.datedebutprevue, operatione0_2_.id, affaireent2_.code, affaireent2_.descriptif, affaireent2_.id, tiersentit3_.abrege, tiersentit3_.raisonsociale
16. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=1,717.70..10,207.18 rows=129,075 width=127) (actual rows= loops=)

  • Output: operatione0_2_.datedebutprevue, operatione0_2_.id, affaireent2_.code, affaireent2_.descriptif, affaireent2_.id, tiersentit3_.abrege, tiersentit3_.raisonsociale
  • Hash Cond: ((operatione0_2_.id_ordrefabrication)::text = (ordrefabri1_.id)::text)
17. 0.000 0.000 ↓ 0.0

Seq Scan on public.dm5_operationordrefabrication operatione0_2_ (cost=0.00..6,069.75 rows=129,075 width=74) (actual rows= loops=)

  • Output: operatione0_2_.id, operatione0_2_.etatavancementoperationof, operatione0_2_.numeroordreoperationof, operatione0_2_.datedebutprevue, operatione0_2_.datedebutreelle, operatione0_2_.datefinprevue, operatione0_2_.datefinreelle, operatione0_2_.numerobontravail, operatione0_2_.statutpropositionsoustraitance, operatione0_2_.tempsreglageprevu_valeur, operatione0_2_.tempsreglagereelmachine_valeur, operatione0_2_.tempsreglagereelmo_valeur, operatione0_2_.tempsfabricationprevu_valeur, operatione0_2_.tempsfabricationreelmachine_valeur, operatione0_2_.tempsfabricationreelmo_valeur, operatione0_2_.coutmainoeuvreprevu_valeur, operatione0_2_.coutmachineprevu_valeur, operatione0_2_.coutstraitunitaireprevu_valeur, operatione0_2_.coutstraitfixeprevu_valeur, operatione0_2_.coutstraittotalprevu_valeur, operatione0_2_.coutoperationprevu_valeur, operatione0_2_.coutoperationreel_valeur, operatione0_2_.id_ordrefabrication, operatione0_2_.couthorairemainoeuvreoperateur_valeur, operatione0_2_.couthorairemainoeuvreregleur_valeur, operatione0_2_.couthorairemachineregleur_valeur, operatione0_2_.couthorairemachineoperateur_valeur, operatione0_2_.id_bonregroupementoperationof, operatione0_2_.quantitefabriqueereelle_valeur, operatione0_2_.quantiterebuteereelle_valeur, operatione0_2_.id_historiquepointagefin, operatione0_2_.id_lignedecaissementproduction, operatione0_2_.commentaire, operatione0_2_.id_gammecontrole, operatione0_2_.etatavancementcdesoustraitance, operatione0_2_.idoperationgamme, operatione0_2_.etatplanificationcapacitefinie
18. 0.000 0.000 ↓ 0.0

Hash (cost=1,581.72..1,581.72 rows=10,879 width=119) (actual rows= loops=)

  • Output: ordrefabri1_.id, affaireent2_.code, affaireent2_.descriptif, affaireent2_.id, tiersentit3_.abrege, tiersentit3_.raisonsociale
19. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=597.96..1,581.72 rows=10,879 width=119) (actual rows= loops=)

  • Output: ordrefabri1_.id, affaireent2_.code, affaireent2_.descriptif, affaireent2_.id, tiersentit3_.abrege, tiersentit3_.raisonsociale
  • Hash Cond: ((ordrefabri1_.id_affaire)::text = (affaireent2_.id)::text)
20. 0.000 0.000 ↓ 0.0

Seq Scan on public.dm5_ordrefabrication ordrefabri1_ (cost=0.00..779.79 rows=10,879 width=66) (actual rows= loops=)

  • Output: ordrefabri1_.id, ordrefabri1_.datefinvalidite, ordrefabri1_.codeof, ordrefabri1_.niveauof, ordrefabri1_.referenceof, ordrefabri1_.etatavancementof, ordrefabri1_.datecreation, ordrefabri1_.datedebutprevue, ordrefabri1_.datedebutreelle, ordrefabri1_.datefinprevue, ordrefabri1_.datefinreelle, ordrefabri1_.datelancementproduction, ordrefabri1_.quantitefabriqueeprevue_valeur, ordrefabri1_.quantitefabriqueereelle_valeur, ordrefabri1_.quantiterebutee_valeur, ordrefabri1_.origineof, ordrefabri1_.statutpublicationfichesuiveuse, ordrefabri1_.statutpublicationlisteaservir, ordrefabri1_.statutpublicationbondetravail, ordrefabri1_.coutrevientprevu_valeur, ordrefabri1_.coutrevientreel_valeur, ordrefabri1_.coutfraisgenerauxprevu_valeur, ordrefabri1_.coutfraisgenerauxreel_valeur, ordrefabri1_.commentaire, ordrefabri1_.designationarticle, ordrefabri1_.id_programmeproduction, ordrefabri1_.id_gammenomenclature, ordrefabri1_.id_unitegestion, ordrefabri1_.id_composantordrefabrication, ordrefabri1_.id_lieustockage, ordrefabri1_.id_affaire, ordrefabri1_.id_article, ordrefabri1_.fichenonconformite_id, ordrefabri1_.id_typeof, ordrefabri1_.id_deroulescenarioquestion, ordrefabri1_.id_indicearticle, ordrefabri1_.datecreationsysteme, ordrefabri1_.datemodificationsysteme, ordrefabri1_.id_modifieparsysteme, ordrefabri1_.id_creeparsysteme, ordrefabri1_.statutplanification
21. 0.000 0.000 ↓ 0.0

Hash (cost=540.18..540.18 rows=4,622 width=86) (actual rows= loops=)

  • Output: affaireent2_.code, affaireent2_.descriptif, affaireent2_.id, tiersentit3_.abrege, tiersentit3_.raisonsociale
22. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=202.64..540.18 rows=4,622 width=86) (actual rows= loops=)

  • Output: affaireent2_.code, affaireent2_.descriptif, affaireent2_.id, tiersentit3_.abrege, tiersentit3_.raisonsociale
  • Hash Cond: ((affaireent2_.id_tiers)::text = (tiersentit3_.id)::text)
23. 0.000 0.000 ↓ 0.0

Seq Scan on public.dm6_affaire affaireent2_ (cost=0.00..268.22 rows=4,622 width=95) (actual rows= loops=)

  • Output: affaireent2_.id, affaireent2_.datefinvalidite, affaireent2_.code, affaireent2_.descriptif, affaireent2_.datecreation, affaireent2_.datesolde, affaireent2_.commentaire, affaireent2_.etataffaire, affaireent2_.depenseprevue_valeur, affaireent2_.depensereelle_valeur, affaireent2_.depenserestante_valeur, affaireent2_.recetteprevue_valeur, affaireent2_.recettereelle_valeur, affaireent2_.recetterestante_valeur, affaireent2_.id_typeaffaire, affaireent2_.id_tiers, affaireent2_.typetiers, affaireent2_.id_individu, affaireent2_.datecreationsysteme, affaireent2_.datemodificationsysteme, affaireent2_.id_modifieparsysteme, affaireent2_.id_creeparsysteme, affaireent2_.datefininitiale, affaireent2_.datefinsouhaitee, affaireent2_.datefinprevue, affaireent2_.etatlancementproduction, affaireent2_.id_donneetechniqueaffaire, affaireent2_.id_modeledonneetechniqueaffaire, affaireent2_.statutactualisationbilan, affaireent2_.id_decaissementproduction, affaireent2_.id_decaissementachat, affaireent2_.id_encaissement, affaireent2_.id_bilanaffaire, affaireent2_.totalbudgetannexe_valeur, affaireent2_.totalprevuannexe_valeur, affaireent2_.totalreelannexe_valeur, affaireent2_.id_affairemere
24. 0.000 0.000 ↓ 0.0

Hash (cost=177.84..177.84 rows=1,984 width=56) (actual rows= loops=)

  • Output: tiersentit3_.abrege, tiersentit3_.raisonsociale, tiersentit3_.id
25. 0.000 0.000 ↓ 0.0

Seq Scan on public.dm1_tiers tiersentit3_ (cost=0.00..177.84 rows=1,984 width=56) (actual rows= loops=)

  • Output: tiersentit3_.abrege, tiersentit3_.raisonsociale, tiersentit3_.id
26. 0.000 0.000 ↓ 0.0

Hash (cost=1.01..1.01 rows=1 width=39) (actual rows= loops=)

  • Output: operatione0_3_.id
27. 0.000 0.000 ↓ 0.0

Seq Scan on public.dm5_operationsuggestionappro operatione0_3_ (cost=0.00..1.01 rows=1 width=39) (actual rows= loops=)

  • Output: operatione0_3_.id
28. 0.000 0.000 ↓ 0.0

Hash (cost=8.53..8.53 rows=53 width=32) (actual rows= loops=)

  • Output: centrechar4_.id
29. 0.000 0.000 ↓ 0.0

Seq Scan on public.dm3_centrecharge centrechar4_ (cost=0.00..8.53 rows=53 width=32) (actual rows= loops=)

  • Output: centrechar4_.id
30.          

SubPlan (forHash Left Join)

31. 0.000 0.000 ↓ 0.0

HashAggregate (cost=21.45..21.46 rows=1 width=32) (actual rows= loops=)

  • Output: utilisateu18_.id
32.          

Initplan (forHashAggregate)

33. 0.000 0.000 ↓ 0.0

Nested Loop (cost=5.39..10.40 rows=1 width=4) (actual rows= loops=)

  • Output: employeent22_.code
34. 0.000 0.000 ↓ 0.0

Nested Loop (cost=5.39..10.11 rows=1 width=43) (actual rows= loops=)

  • Output: attributsu21_.alpha, employeent22_1_.id
35. 0.000 0.000 ↓ 0.0

Merge Join (cost=5.39..5.84 rows=1 width=75) (actual rows= loops=)

  • Output: attributsu21_.id_centrecharge, attributsu21_.alpha, employeent22_1_.id
  • Merge Cond: ((employeent22_1_.id)::text = (attributsu21_.alpha)::text)
36. 0.000 0.000 ↓ 0.0

Index Only Scan using dm1_individu_pkey on public.dm1_individu employeent22_1_ (cost=0.00..3,935.30 rows=9,000 width=32) (actual rows= loops=)

  • Output: employeent22_1_.id
37. 0.000 0.000 ↓ 0.0

Sort (cost=5.38..5.38 rows=1 width=43) (actual rows= loops=)

  • Output: attributsu21_.id_centrecharge, attributsu21_.alpha
  • Sort Key: attributsu21_.alpha
38. 0.000 0.000 ↓ 0.0

Seq Scan on public.dm3_centrecharge_cs attributsu21_ (cost=0.00..5.37 rows=1 width=43) (actual rows= loops=)

  • Output: attributsu21_.id_centrecharge, attributsu21_.alpha
  • Filter: (((attributsu21_.id_centrecharge)::text = (centrechar4_.id)::text) AND ((attributsu21_.clef)::text = 'sup_CentreCharge_responsable'::text))
39. 0.000 0.000 ↓ 0.0

Index Only Scan using dm3_poste_pkey on public.dm3_centrecharge centrechar20_ (cost=0.00..4.27 rows=1 width=32) (actual rows= loops=)

  • Output: centrechar20_.id
  • Index Cond: (centrechar20_.id = (centrechar4_.id)::text)
40. 0.000 0.000 ↓ 0.0

Index Scan using dm1_employe_pkey on public.dm1_employe employeent22_ (cost=0.00..0.27 rows=1 width=36) (actual rows= loops=)

  • Output: employeent22_.id, employeent22_.dossierdonnee, employeent22_.dossiercontact, employeent22_.datedernieresynchronisationoutlook, employeent22_.dossiercalendrier, employeent22_.dossiertache, employeent22_.code, employeent22_.synchronisationagenda, employeent22_.datedernieresynchronisationgoogle, employeent22_.synchronisationgoogle, employeent22_.datedernierexportcontactgoogle, employeent22_.datedernieresynchroagendagoogle, employeent22_.datedernierimportemailgoogle, employeent22_.couthoraire_valeur, employeent22_.id_categorieemploye, employeent22_.id_semainetypecentrecharge, employeent22_.actif, employeent22_.employeactif
  • Index Cond: ((employeent22_.id)::text = (employeent22_1_.id)::text)
41. 0.000 0.000 ↓ 0.0

Hash Join (cost=2.90..11.05 rows=1 width=32) (actual rows= loops=)

  • Output: utilisateu18_.id
  • Hash Cond: ((utilisateu18_.id_employe)::text = (employeent19_.id)::text)
42. 0.000 0.000 ↓ 0.0

Seq Scan on public.dm1_utilisateur utilisateu18_ (cost=0.00..7.88 rows=70 width=65) (actual rows= loops=)

  • Output: utilisateu18_.id, utilisateu18_.datefinvalidite, utilisateu18_.login, utilisateu18_.password, utilisateu18_.level, utilisateu18_.nom, utilisateu18_.prenom, utilisateu18_.nbelementaffiche, utilisateu18_.nbelementaffichedossier, utilisateu18_.aidechampactivation, utilisateu18_.ajaxnbelementaffiche, utilisateu18_.listeblocaffiche, utilisateu18_.derniereconnexion, utilisateu18_.actif, utilisateu18_.email, utilisateu18_.titre, utilisateu18_.resolution, utilisateu18_.id_langue, utilisateu18_.id_menunavigation, utilisateu18_.id_employe, utilisateu18_.theme, utilisateu18_.tempsdeconnexion_valeur, utilisateu18_.datecreationsysteme, utilisateu18_.datemodificationsysteme, utilisateu18_.id_modifieparsysteme, utilisateu18_.id_creeparsysteme, utilisateu18_.id_centrecharge, utilisateu18_.id_pays, utilisateu18_.id_employedeclarantmemorise, utilisateu18_.id_menunavigationsmartphone, utilisateu18_.typeutilisateur, utilisateu18_.id_tiers, utilisateu18_.id_contact, utilisateu18_.affichageraccourci, utilisateu18_.signature, utilisateu18_.affichagerecherche, utilisateu18_.id_menunavigationdossier
  • Filter: ((utilisateu18_.datefinvalidite IS NULL) AND ((utilisateu18_.id)::text !~~ 'DefaultRecord_%'::text))
43. 0.000 0.000 ↓ 0.0

Hash (cost=2.89..2.89 rows=1 width=32) (actual rows= loops=)

  • Output: employeent19_.id
44. 0.000 0.000 ↓ 0.0

Seq Scan on public.dm1_employe employeent19_ (cost=0.00..2.89 rows=1 width=32) (actual rows= loops=)

  • Output: employeent19_.id
  • Filter: ((employeent19_.code)::text = ($6)::text)
45. 0.000 0.000 ↓ 0.0

HashAggregate (cost=10.86..10.91 rows=5 width=32) (actual rows= loops=)

  • Output: utilisateu23_.id
46. 0.000 0.000 ↓ 0.0

Nested Loop (cost=3.06..10.85 rows=5 width=32) (actual rows= loops=)

  • Output: utilisateu23_.id
47. 0.000 0.000 ↓ 0.0

Hash Join (cost=3.06..8.31 rows=5 width=19) (actual rows= loops=)

  • Output: listeroleu24_.id_utilisateur
  • Hash Cond: ((listeroleu24_.id_roleutilisateur)::text = (roleutilis25_.id)::text)
48. 0.000 0.000 ↓ 0.0

Seq Scan on public.dm1_utilisateur_roleutilisateur listeroleu24_ (cost=0.00..4.60 rows=160 width=47) (actual rows= loops=)

  • Output: listeroleu24_.id_utilisateur, listeroleu24_.id_roleutilisateur
49. 0.000 0.000 ↓ 0.0

Hash (cost=3.04..3.04 rows=2 width=24) (actual rows= loops=)

  • Output: roleutilis25_.id
50. 0.000 0.000 ↓ 0.0

Seq Scan on public.dm1_roleutilisateur roleutilis25_ (cost=0.00..3.04 rows=2 width=24) (actual rows= loops=)

  • Output: roleutilis25_.id
  • Filter: ((roleutilis25_.datefinvalidite IS NULL) AND (((roleutilis25_.code)::text = 'ADM_ADM'::text) OR ((roleutilis25_.code)::text = 'CON_RES'::text)))
51. 0.000 0.000 ↓ 0.0

Index Scan using dm1_utilisateur_pkey on public.dm1_utilisateur utilisateu23_ (cost=0.00..0.50 rows=1 width=32) (actual rows= loops=)

  • Output: utilisateu23_.id, utilisateu23_.datefinvalidite, utilisateu23_.login, utilisateu23_.password, utilisateu23_.level, utilisateu23_.nom, utilisateu23_.prenom, utilisateu23_.nbelementaffiche, utilisateu23_.nbelementaffichedossier, utilisateu23_.aidechampactivation, utilisateu23_.ajaxnbelementaffiche, utilisateu23_.listeblocaffiche, utilisateu23_.derniereconnexion, utilisateu23_.actif, utilisateu23_.email, utilisateu23_.titre, utilisateu23_.resolution, utilisateu23_.id_langue, utilisateu23_.id_menunavigation, utilisateu23_.id_employe, utilisateu23_.theme, utilisateu23_.tempsdeconnexion_valeur, utilisateu23_.datecreationsysteme, utilisateu23_.datemodificationsysteme, utilisateu23_.id_modifieparsysteme, utilisateu23_.id_creeparsysteme, utilisateu23_.id_centrecharge, utilisateu23_.id_pays, utilisateu23_.id_employedeclarantmemorise, utilisateu23_.id_menunavigationsmartphone, utilisateu23_.typeutilisateur, utilisateu23_.id_tiers, utilisateu23_.id_contact, utilisateu23_.affichageraccourci, utilisateu23_.signature, utilisateu23_.affichagerecherche, utilisateu23_.id_menunavigationdossier
  • Index Cond: ((utilisateu23_.id)::text = (listeroleu24_.id_utilisateur)::text)
  • Filter: ((utilisateu23_.datefinvalidite IS NULL) AND ((utilisateu23_.id)::text !~~ 'DefaultRecord_%'::text))
52. 0.000 0.000 ↓ 0.0

Unique (cost=8.09..8.10 rows=2 width=32) (actual rows= loops=)

  • Output: attributsu28_.alpha
53. 0.000 0.000 ↓ 0.0

Sort (cost=8.09..8.09 rows=2 width=32) (actual rows= loops=)

  • Output: attributsu28_.alpha
  • Sort Key: attributsu28_.alpha
54. 0.000 0.000 ↓ 0.0

Nested Loop (cost=4.65..8.08 rows=2 width=32) (actual rows= loops=)

  • Output: attributsu28_.alpha
55. 0.000 0.000 ↓ 0.0

Hash Join (cost=4.65..6.48 rows=2 width=66) (actual rows= loops=)

  • Output: employes_p27_.id, attributsu29_.id_employes_par_centre_de_chargesup
  • Hash Cond: ((employes_p27_.id)::text = (attributsu29_.id_employes_par_centre_de_chargesup)::text)
56. 0.000 0.000 ↓ 0.0

Seq Scan on public.specif_employes_par_centre_de_chargesup employes_p27_ (cost=0.00..1.54 rows=54 width=33) (actual rows= loops=)

  • Output: employes_p27_.id, employes_p27_.datefinvalidite, employes_p27_.code, employes_p27_.libelle, employes_p27_.datecreationsysteme, employes_p27_.datemodificationsysteme, employes_p27_.id_creeparsysteme, employes_p27_.id_modifieparsysteme
57. 0.000 0.000 ↓ 0.0

Hash (cost=4.62..4.62 rows=2 width=33) (actual rows= loops=)

  • Output: attributsu29_.id_employes_par_centre_de_chargesup
58. 0.000 0.000 ↓ 0.0

Seq Scan on public.specif_employes_par_centre_de_chargesup_cs attributsu29_ (cost=0.00..4.62 rows=2 width=33) (actual rows= loops=)

  • Output: attributsu29_.id_employes_par_centre_de_chargesup
  • Filter: (((attributsu29_.clef)::text = 'sup_Employes_par_centre_de_chargeSup_centre_de_charge'::text) AND ((attributsu29_.alpha)::text = (operatione0_.id_centrecharge)::text))
59. 0.000 0.000 ↓ 0.0

Index Scan using specif_employes_par_centre_de_chargesup_cs_pkey on public.specif_employes_par_centre_de_chargesup_cs attributsu28_ (cost=0.00..0.79 rows=1 width=65) (actual rows= loops=)

  • Output: attributsu28_.id_employes_par_centre_de_chargesup, attributsu28_.alpha, attributsu28_.numerique, attributsu28_.date, attributsu28_.heure, attributsu28_.clef
  • Index Cond: (((attributsu28_.id_employes_par_centre_de_chargesup)::text = (employes_p27_.id)::text) AND ((attributsu28_.clef)::text = 'sup_Employes_par_centre_de_chargeSup_employe'::text))
60. 0.000 0.000 ↓ 0.0

Hash (cost=7,653.89..7,653.89 rows=256,589 width=33) (actual rows= loops=)

  • Output: operatione0_1_.id
61. 0.000 0.000 ↓ 0.0

Seq Scan on public.dm3_operationgamme operatione0_1_ (cost=0.00..7,653.89 rows=256,589 width=33) (actual rows= loops=)

  • Output: operatione0_1_.id
62. 0.000 0.000 ↓ 0.0

Hash (cost=52,067.67..52,067.67 rows=301 width=98) (actual rows= loops=)

  • Output: attributsu13_.id_operation, operationo12_.id, operationo12_1_.id
63. 0.000 0.000 ↓ 0.0

Nested Loop (cost=5,537.25..52,067.67 rows=301 width=98) (actual rows= loops=)

  • Output: attributsu13_.id_operation, operationo12_.id, operationo12_1_.id
64. 0.000 0.000 ↓ 0.0

Nested Loop (cost=5,537.25..51,896.03 rows=301 width=66) (actual rows= loops=)

  • Output: attributsu13_.id_operation, operationo12_.id
65. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on public.dm1_operation_cs attributsu13_ (cost=5,537.25..49,033.99 rows=791 width=33) (actual rows= loops=)

  • Output: attributsu13_.id_operation, attributsu13_.alpha, attributsu13_.numerique, attributsu13_.date, attributsu13_.clef, attributsu13_.heure
  • Recheck Cond: ((attributsu13_.clef)::text = 'sup_OperationOrdreFabrication_code_workflow'::text)
  • Filter: (((attributsu13_.alpha)::text = 'M02P01T01'::text) OR ((attributsu13_.alpha)::text = 'M03P01T01'::text) OR ((attributsu13_.alpha)::text = 'M04P01T01'::text) OR ((attributsu13_.alpha)::text = 'M05P01T01'::text) OR ((attributsu13_.alpha)::text = 'M05P02T01'::text) OR ((attributsu13_.alpha)::text = 'M06P01T01'::text) OR ((attributsu13_.alpha)::text = 'M06P02T01'::text) OR ((attributsu13_.alpha)::text = 'M07P01T01'::text) OR ((attributsu13_.alpha)::text = 'M07P02T01'::text) OR ((attributsu13_.alpha)::text = 'M07P03T01'::text) OR ((attributsu13_.alpha)::text = 'M08P01T01'::text) OR ((attributsu13_.alpha)::text = 'M08P02T01'::text) OR ((attributsu13_.alpha)::text = 'M09P01T01'::text) OR ((attributsu13_.alpha)::text = 'M09P02T01'::text) OR ((attributsu13_.alpha)::text = 'M09P03T01'::text) OR ((attributsu13_.alpha)::text = 'M11P01T01'::text) OR ((attributsu13_.alpha)::text = 'M11P02T01'::text) OR ((attributsu13_.alpha)::text = 'M11P02T03'::text) OR ((attributsu13_.alpha)::text = 'M11P04T02'::text) OR ((attributsu13_.alpha)::text = 'M11P04T04'::text) OR ((attributsu13_.alpha)::text = 'M11P04T05'::text) OR ((attributsu13_.alpha)::text = 'M12P01T01'::text) OR ((attributsu13_.alpha)::text = 'M12P03T01'::text) OR ((attributsu13_.alpha)::text = 'M12P03T03'::text) OR ((attributsu13_.alpha)::text = 'M12P05T02'::text) OR ((attributsu13_.alpha)::text = 'M12P05T04'::text) OR ((attributsu13_.alpha)::text = 'M12P05T05'::text) OR ((attributsu13_.alpha)::text = 'M13P01T01'::text) OR ((attributsu13_.alpha)::text = 'M13P01T03'::text) OR ((attributsu13_.alpha)::text = 'M13P01T04'::text) OR ((attributsu13_.alpha)::text = 'Divers'::text))
66. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on x_dm1_operation_cs_00 (cost=0.00..5,537.05 rows=121,586 width=0) (actual rows= loops=)

  • Index Cond: ((attributsu13_.clef)::text = 'sup_OperationOrdreFabrication_code_workflow'::text)
67. 0.000 0.000 ↓ 0.0

Index Only Scan using dm5_operationordrefabrication_pkey on public.dm5_operationordrefabrication operationo12_ (cost=0.00..3.61 rows=1 width=33) (actual rows= loops=)

  • Output: operationo12_.id
  • Index Cond: (operationo12_.id = (attributsu13_.id_operation)::text)
68. 0.000 0.000 ↓ 0.0

Index Only Scan using dm1_operation_pkey on public.dm1_operation operationo12_1_ (cost=0.00..0.56 rows=1 width=32) (actual rows= loops=)

  • Output: operationo12_1_.id
  • Index Cond: (operationo12_1_.id = (operationo12_.id)::text)
69. 0.000 0.000 ↓ 0.0

Index Scan using dm1_operation_cs_pkey on public.dm1_operation_cs attributsu5_ (cost=0.00..2.30 rows=1 width=33) (actual rows= loops=)

  • Output: attributsu5_.id_operation, attributsu5_.alpha, attributsu5_.numerique, attributsu5_.date, attributsu5_.clef, attributsu5_.heure
  • Index Cond: (((attributsu5_.id_operation)::text = (operatione0_.id)::text) AND ((attributsu5_.clef)::text = 'sup_OperationOrdreFabrication_employe_affecte'::text))
  • Filter: ((attributsu5_.alpha)::text = ''::text)
70. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.00..3.13 rows=1 width=98) (actual rows= loops=)

  • Output: operationo14_1_.id, attributsu15_.id_operation, operationo14_.id
  • Join Filter: ((operatione0_.id)::text = (operationo14_.id)::text)
71. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.00..2.78 rows=1 width=65) (actual rows= loops=)

  • Output: operationo14_1_.id, attributsu15_.id_operation
72. 0.000 0.000 ↓ 0.0

Index Only Scan using dm1_operation_pkey on public.dm1_operation operationo14_1_ (cost=0.00..0.47 rows=1 width=32) (actual rows= loops=)

  • Output: operationo14_1_.id
  • Index Cond: (operationo14_1_.id = (operatione0_.id)::text)
73. 0.000 0.000 ↓ 0.0

Index Scan using dm1_operation_cs_pkey on public.dm1_operation_cs attributsu15_ (cost=0.00..2.30 rows=1 width=33) (actual rows= loops=)

  • Output: attributsu15_.id_operation, attributsu15_.alpha, attributsu15_.numerique, attributsu15_.date, attributsu15_.clef, attributsu15_.heure
  • Index Cond: (((attributsu15_.id_operation)::text = (operationo14_1_.id)::text) AND ((attributsu15_.clef)::text = 'sup_OperationOrdreFabrication_etat_de_la_tache'::text))
  • Filter: (((attributsu15_.alpha)::text = '0'::text) OR ((attributsu15_.alpha)::text = '1'::text) OR ((attributsu15_.alpha)::text = '2'::text))
74. 0.000 0.000 ↓ 0.0

Index Only Scan using dm5_operationordrefabrication_pkey on public.dm5_operationordrefabrication operationo14_ (cost=0.00..0.34 rows=1 width=33) (actual rows= loops=)

  • Output: operationo14_.id
  • Index Cond: (operationo14_.id = (operationo14_1_.id)::text)
75. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.00..3.13 rows=1 width=98) (actual rows= loops=)

  • Output: operationo16_.id, operationo16_1_.id, attributsu17_.id_operation
  • Join Filter: ((operatione0_.id)::text = (operationo16_.id)::text)
76. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.00..2.78 rows=1 width=65) (actual rows= loops=)

  • Output: operationo16_1_.id, attributsu17_.id_operation
77. 0.000 0.000 ↓ 0.0

Index Only Scan using dm1_operation_pkey on public.dm1_operation operationo16_1_ (cost=0.00..0.47 rows=1 width=32) (actual rows= loops=)

  • Output: operationo16_1_.id
  • Index Cond: (operationo16_1_.id = (operatione0_.id)::text)
78. 0.000 0.000 ↓ 0.0

Index Scan using dm1_operation_cs_pkey on public.dm1_operation_cs attributsu17_ (cost=0.00..2.30 rows=1 width=33) (actual rows= loops=)

  • Output: attributsu17_.id_operation, attributsu17_.alpha, attributsu17_.numerique, attributsu17_.date, attributsu17_.clef, attributsu17_.heure
  • Index Cond: (((attributsu17_.id_operation)::text = (operationo16_1_.id)::text) AND ((attributsu17_.clef)::text = 'sup_OperationOrdreFabrication_a_affecter_a_un_employe'::text))
  • Filter: ((attributsu17_.alpha)::text = '1'::text)
79. 0.000 0.000 ↓ 0.0

Index Only Scan using dm5_operationordrefabrication_pkey on public.dm5_operationordrefabrication operationo16_ (cost=0.00..0.34 rows=1 width=33) (actual rows= loops=)

  • Output: operationo16_.id
  • Index Cond: (operationo16_.id = (operationo16_1_.id)::text)
80.          

SubPlan (forResult)

81. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.00..26.83 rows=1 width=15) (actual rows= loops=)

  • Output: (((employeent9_1_.prenom)::text || ' '::text) || (employeent9_1_.nom)::text)
82. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.00..18.74 rows=1 width=32) (actual rows= loops=)

  • Output: employeent9_.id
83. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.00..18.16 rows=1 width=33) (actual rows= loops=)

  • Output: representa8_.id_employe
  • Join Filter: ((attributsu7_.alpha)::text = (representa8_.id)::text)
84. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.00..16.56 rows=1 width=25) (actual rows= loops=)

  • Output: attributsu7_.alpha
85. 0.000 0.000 ↓ 0.0

Index Only Scan using dm6_affaire_pkey on public.dm6_affaire affaireent6_ (cost=0.00..8.27 rows=1 width=32) (actual rows= loops=)

  • Output: affaireent6_.id
  • Index Cond: (affaireent6_.id = (affaireent2_.id)::text)
86. 0.000 0.000 ↓ 0.0

Index Scan using dm6_affaire_cs_pkey on public.dm6_affaire_cs attributsu7_ (cost=0.00..8.28 rows=1 width=57) (actual rows= loops=)

  • Output: attributsu7_.id_affaire, attributsu7_.alpha, attributsu7_.numerique, attributsu7_.date, attributsu7_.clef, attributsu7_.heure
  • Index Cond: (((attributsu7_.id_affaire)::text = (affaireent2_.id)::text) AND ((attributsu7_.clef)::text = 'sup_Affaire_representant'::text))
87. 0.000 0.000 ↓ 0.0

Seq Scan on public.dm2_representant representa8_ (cost=0.00..1.27 rows=27 width=65) (actual rows= loops=)

  • Output: representa8_.id, representa8_.datefinvalidite, representa8_.pourcentagecommission, representa8_.id_employe, representa8_.datecreationsysteme, representa8_.datemodificationsysteme, representa8_.id_creeparsysteme, representa8_.id_modifieparsysteme, representa8_.modegestiondossierrepresentant
88. 0.000 0.000 ↓ 0.0

Index Only Scan using dm1_employe_pkey on public.dm1_employe employeent9_ (cost=0.00..0.56 rows=1 width=32) (actual rows= loops=)

  • Output: employeent9_.id
  • Index Cond: (employeent9_.id = (representa8_.id_employe)::text)
89. 0.000 0.000 ↓ 0.0

Index Scan using dm1_individu_pkey on public.dm1_individu employeent9_1_ (cost=0.00..8.08 rows=1 width=47) (actual rows= loops=)

  • Output: employeent9_1_.id, employeent9_1_.datefinvalidite, employeent9_1_.titre, employeent9_1_.nom, employeent9_1_.prenom, employeent9_1_.initiales, employeent9_1_.fonction, employeent9_1_.telephone, employeent9_1_.portable, employeent9_1_.fax, employeent9_1_.email, employeent9_1_.commentaire, employeent9_1_.datedernieremodification, employeent9_1_.datecreationsysteme, employeent9_1_.datemodificationsysteme, employeent9_1_.id_creeparsysteme, employeent9_1_.id_modifieparsysteme
  • Index Cond: ((employeent9_.id)::text = (employeent9_1_.id)::text)
90. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.00..26.37 rows=1 width=2) (actual rows= loops=)

  • Output: attributsu11_.alpha
91. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.00..16.75 rows=1 width=33) (actual rows= loops=)

  • Output: operationo10_.id
92. 0.000 0.000 ↓ 0.0

Index Only Scan using dm5_operationordrefabrication_pkey on public.dm5_operationordrefabrication operationo10_ (cost=0.00..8.32 rows=1 width=33) (actual rows= loops=)

  • Output: operationo10_.id
  • Index Cond: (operationo10_.id = (operatione0_.id)::text)
93. 0.000 0.000 ↓ 0.0

Index Only Scan using dm1_operation_pkey on public.dm1_operation operationo10_1_ (cost=0.00..8.43 rows=1 width=32) (actual rows= loops=)

  • Output: operationo10_1_.id
  • Index Cond: (operationo10_1_.id = (operatione0_.id)::text)
94. 0.000 0.000 ↓ 0.0

Index Scan using dm1_operation_cs_pkey on public.dm1_operation_cs attributsu11_ (cost=0.00..9.61 rows=1 width=35) (actual rows= loops=)

  • Output: attributsu11_.id_operation, attributsu11_.alpha, attributsu11_.numerique, attributsu11_.date, attributsu11_.clef, attributsu11_.heure
  • Index Cond: (((attributsu11_.id_operation)::text = (operatione0_.id)::text) AND ((attributsu11_.clef)::text = 'sup_OperationOrdreFabrication_commentaire_de_la_tache'::text))