Bonjour,
Je suis en train de me prendre la tête sur la manière d'effectuer des calculs en utilisant une notion d'heure glissante.
J'ai une table qui contient une liste de logs d'exécution, avec une date de début, une date de fin et une durée (en minute).
Je souhaite détecter les dépassements d'un plafond horaire d'éxécution (15 mn par exemple) pour la durée cumulée d'exécution de mon traitement sur une heure ( je suis pas très fier de ma formulation).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Id Début Fin Durée ----------------------------- 1 01:01 01:02 1 2 01:15 01:20 5 3 02:36 02:40 4 4 02:45 02:55 10 5 03:35 03:37 2 6 03:55 03:57 2 ....
Pour être plus clair, dans l'exemple ci-dessus, je voudrais identifier la plage débutant à 02:36 qui présente sur une heure une sur-exploitation.
L'algo me semble séquentiel :
- je me place sur 00:00 et je cumule les durées sur l'intervalle 00:00-00:59
- je me place sur 00:01 et je cumule les durées sur l'intervalle 00:01-01:00
- je me place sur 00:02 et je cumule les durées sur l'intervalle 00:02-01:01
- etc...
C'est faisable mais si je passe l'unité en seconde et j'effectue les calculs sur plusieurs journées... ce ne sera pas très performant
Connaissez vous une autre méthode ? En SQL je ne vois pas ce qui pourrait m'aider... PL/SQL je ne connais point...
Merci de votre aide ou tout dumoins de votre lecture
Partager