Bonjour,
Je débute sous Wamp et je cherche à faire une surveillance de performance de scanner d'ordonnance.
Chaque nuit mon script php parcours toutes les ordonnances et crée une table temporaire contenant les ordo des 6 derniers jours : tmp_SO_Dem_Inlog.
Je lance le script chaque nuit à J-6 pour éviter de perdre des ordo le jour où le script ne sera pas lancé pour X raisons.
Sur cette table temporaire, seul le dernier jour sera intégré à la table définitive, la plupart du temps.
Une table liste les ordonnances définitives SO_Dem_Inlog.
Chaque jour donc j'alimente la table définitive des seules nouvelles demandes contenues dans la table temporaire.
Je réalise donc une requête pour trouver le delta et boucle ensuite par une requête insert pour alimenter la table définitive SO_Dem_Inlog :
Je m’aperçois que cette requête de non existence des ordo est de plus en plus longue (ordre d'idée : 30 minutes) : la table définitive contient 100000 lignes et la temporaire 10000 environ.
Code : Sélectionner tout - Visualiser dans une fenêtre à part select DEMANDE, SOMME_SO from tmp_SO_Dem_Inlog where not exists (select 1 from SO_Dem_Inlog where tmp_SO_Dem_Inlog.DEMANDE=SO_Dem_Inlog.DEMANDE)
Ci dessous la structure ainsi que les données pour tester au besoin.
Desktop.7z
Je ne sais pas si je dois revoir la structure de mes tables, optimiser avec des index ou revoir ma syntaxe sql...
Merci d'avance
Partager