Bonsoir,
J'ai un problème de performance avec une requête sql.
Mon script utilise deux tables :
table contenant 2 champs : id_table, num_table
table_bis contenant 2 champs : id, num
(ci-joint une image qui décrit la requête que je voudrai construire).
Ma requête actuelle :
"table" contient 300 000 enregistrements, la requête s’exécute sans aucun problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Select table_1.id_table, table2.id_table ,table_bis.ID From table table_1, table table_2 , table_bis Where table_1.num_table = table_2.num_table And table_bis.ID = table_2.id_table And table_1.id_table = 1000 ( par exemple)
Je voudrai modifier la requête pour intégrer une condition sur les 4 premiers caractères du champs num_table (au lieu de tester sur tout le champ num_table) ,j'ai utilisé la méthode substring dans la nouvelle requête .
Nouvelle requête :
Problème : l’exécution de la requête prend au moins une minute, ce qui est énorme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Select table_1.id_table, table2.id_table ,table_bis.ID From table table_1, table table_2 , table_bis Where substring(table_1.num_table,1,4) = substring(table_2.num_table , 1, 4) And table_bis.ID = table_2.id_table And table_1.id_table = 1000
Avez-vous une solution a mon problème, est-ce qu’il y a un moyen d’optimiser cette requête.
Merci d'avance pour votre aide (Je remercie aussi ceux qui ont pris la peine de visiter mon post )
Youness
Partager