1 pièce(s) jointe(s)
Lenteur d'une requete Not exists : syntaxe SQL ou mauvaise conception de table ?
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 :
Code:
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)
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.
Ci dessous la structure ainsi que les données pour tester au besoin.
Pièce jointe 402188
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