Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

Optimiser une requete SQL

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
syrx20
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 12 Aoû 2005
Messages: 171

URL permanente de ce messagePosté le : Jeu Mai 15, 2008 10:31    Sujet du message: 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 Sad

Quelqu'un aurait il une solution pour optimiser cela?

Merci
 
syrx20 Visiter le site web du posteur
seebz
WRInaute impliqué
WRInaute impliqué

Inscrit le: 15 Avr 2007
Messages: 266

URL permanente de ce messagePosté le : Jeu Mai 15, 2008 10:47    Sujet du message: Optimiser une requete SQL

A tout hasard :

Code:
SELECT t.id_tournoi
FROM tournoi t
WHERE t.id NOT IN (
   SELECT i.id
   FROM inscription i
   WHERE i.id_personne=1
)
 
seebz Visiter le site web du posteur
audit.referencement
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 16 Fév 2008
Messages: 121

URL permanente de ce messagePosté le : Jeu Mai 15, 2008 10:48    Sujet du message: Optimiser une requete SQL

Sans avoir l'architecture de tes tables, ça va être très très dur de t'aider.
 
audit.referencement
syrx20
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 12 Aoû 2005
Messages: 171

URL permanente de ce messagePosté le : Jeu Mai 15, 2008 10:48    Sujet du message: Optimiser une requete SQL

Merci pour ta réponse seebz mais j'ai déjà essayé et c'est pareil
 
syrx20 Visiter le site web du posteur
Bacteries
WRInaute passionné
WRInaute passionné

Inscrit le: 27 Mai 2004
Messages: 951
Localisation: France - Nantes

URL permanente de ce messagePosté le : Jeu Mai 15, 2008 11:06    Sujet du message: Optimiser une requete SQL

La solution de seebs me semble être ce que tu peux faire de mieux. Tes tables ont beaucoup d'enregistrement?
Tu as des index?
 
Bacteries Visiter le site web du posteur
jcaron
WRInaute impliqué
WRInaute impliqué

Inscrit le: 13 Fév 2004
Messages: 481
Localisation: Paris

URL permanente de ce messagePosté le : Jeu Mai 15, 2008 11:17    Sujet du message: 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 Sad

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.
 
jcaron Visiter le site web du posteur
syrx20
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 12 Aoû 2005
Messages: 171

URL permanente de ce messagePosté le : Jeu Mai 15, 2008 11:22    Sujet du message: Optimiser une requete SQL

Honte sur moi...en effet, il manquait un index sur la table inscription

Merci Bacteries
 
syrx20 Visiter le site web du posteur
jarreweb
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 12 Sep 2003
Messages: 178
Localisation: saint-etienne

URL permanente de ce messagePosté le : Jeu Mai 15, 2008 13:46    Sujet du message: Optimiser une requete SQL

et le temps de réponse avec les index, ca donne quoi ?
 
jarreweb
syrx20
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 12 Aoû 2005
Messages: 171

URL permanente de ce messagePosté le : Ven Mai 16, 2008 11:42    Sujet du message: Optimiser une requete SQL

c instantané Smile
 
syrx20 Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

Autres sujets de discussion :

Définitions :

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort