Probleme de performance pour récuperer des données dans la BDD

1
0
-1

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

1 answer

1
0
-1

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

Notifications