Probleme de performance pour récuperer des données dans la BDD
Hello,
Dans notre utilisation de Bonita, nous avons créer un tableau de bord qui va chercher tout les processus en cours.
Voici notre requete :
SELECT DISTINCT bonita.process_instance.rootProcessInstanceId, bonita.process_instance.name, bonita.process_instance.startDate, bonita.process_instance.startedBy FROM bonita.process_instance LEFT JOIN bonita.user_ ON bonita.user_.id = bonita.process_instance.startedBy INNER JOIN bonita_bdm.PROCESSCURRENT ON bonita.process_instance.rootProcessInstanceId = bonita_bdm.PROCESSCURRENT.PID LEFT JOIN bonita_bdm.PROCESSCURRENT_CONTENTS ON bonita_bdm.PROCESSCURRENT.persistenceId = bonita_bdm.PROCESSCURRENT_CONTENTS.PROCESSCURRENT_PID LEFT JOIN bonita_bdm.CONTENTCURRENT ON bonita_bdm.PROCESSCURRENT_CONTENTS.CONTENTCURRENT_PID = bonita_bdm.CONTENTCURRENT.persistenceId WHERE bonita.process_instance.callerId = -1
Le problème, c'est que pour 2025 processus la requête mets 6 secondes, ce qui provoque des problèmes de performances quand il y a 20 000 processus.
Auriez-vous une idée de comment améliorer cette requete ? Ou alors un autre moyen de recuperer les informations ?
Nous faisais une requete car dans ce tableau de bord, nous avons mis des filtres (type du processus, créateur, date de début..etc).
Merci d'avance
Bonjour,
Avez-vous pensé à paginer votre requête ? Pourquoi ne pas utiliser les API Bonita pour votre dashboard ? Vous avez le droit à 5 search keys par instance de process pour rajouter du filtrage métier sur vos instances.
Cordialement
Romain