Optimiser une requete SQL
9 messages
• Page 1 sur 1
- syrx20
- WRInaute discret

- Messages: 184
- Inscription: 12 Aoû 2005
Optimiser une requete SQL
Bonjour,
J'ai 3 tables TOURNOI,PERSONNE et INSCRIPTION et je cherche à savoir à quel tournoi la personne 1 n'est pas encore inscrit.
J'ai la requete suivante :
SELECT t.id_tournoi FROM tournoi t LEFT JOIN inscription i ON (t.id_tournoi = i.id_tournoi AND i.id_personne=1) WHERE i.id_tournoi is null
ça fonctionne mais le problème c'est qu'elle prend 30 secondes pour renvoyer un résultat
Quelqu'un aurait il une solution pour optimiser cela?
Merci
J'ai 3 tables TOURNOI,PERSONNE et INSCRIPTION et je cherche à savoir à quel tournoi la personne 1 n'est pas encore inscrit.
J'ai la requete suivante :
SELECT t.id_tournoi FROM tournoi t LEFT JOIN inscription i ON (t.id_tournoi = i.id_tournoi AND i.id_personne=1) WHERE i.id_tournoi is null
ça fonctionne mais le problème c'est qu'elle prend 30 secondes pour renvoyer un résultat
Quelqu'un aurait il une solution pour optimiser cela?
Merci
-

seebz - WRInaute impliqué

- Messages: 808
- Inscription: 15 Avr 2007
A tout hasard :
- Code: Tout sélectionner
SELECT t.id_tournoi
FROM tournoi t
WHERE t.id NOT IN (
SELECT i.id
FROM inscription i
WHERE i.id_personne=1
)
- audit.referencement
- WRInaute discret

- Messages: 125
- Inscription: 16 Fév 2008
Sans avoir l'architecture de tes tables, ça va être très très dur de t'aider.
- jcaron
- WRInaute accro

- Messages: 2678
- Inscription: 13 Fév 2004
Re: Optimiser une requete SQL
syrx20 a écrit:J'ai 3 tables TOURNOI,PERSONNE et INSCRIPTION et je cherche à savoir à quel tournoi la personne 1 n'est pas encore inscrit.
J'ai la requete suivante :
SELECT t.id_tournoi FROM tournoi t LEFT JOIN inscription i ON (t.id_tournoi = i.id_tournoi AND i.id_personne=1) WHERE i.id_tournoi is null
Ca veut dire que tu as une entrée dans inscription pour chaque paire (tournoi,personne)? A moins qu'au bout du compte tout le monde (ou presque) doive être inscrit à tous les tournois, ça ne me paraît pas forcément être un très une bonne idée.
syrx20 a écrit:ça fonctionne mais le problème c'est qu'elle prend 30 secondes pour renvoyer un résultat
Quelqu'un aurait il une solution pour optimiser cela?
S'assurer qu'il y a un index sur id_personne pour la table inscription (et évidemment un index sur id_tournoi pour la table tournoi).
Jacques.
9 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Google API : guide de développement de l'API Google - 20-09-2002
- AdSense Tracking : statistiques détaillées sur les clics AdSense - 29-02-2004
- Nombre moyen de mots par requête : statistiques AOL Août 2006 - 10-08-2006
- Nombre de clics dans les pages de résultats : statistiques AOL Août 2006 - 11-08-2006
- Informations sur l'infrastructure technique de Google - 01-11-2004
- Google indexe le Flash - 28-04-2004
- Ranking Metrics lance son blog - 15-01-2007
- + de résultats pour un même site sur Google - 23-08-2010
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


