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