Accueil > Forum > > > > Optimisation : Un select et un autre select en fonction de la réponse du premier
Optimisation : Un select et un autre select en fonction de la réponse du premier
jeudi 28 septembre 2006 à 23:19:10 |
Optimisation : Un select et un autre select en fonction de la réponse du premier

Filipe35
|
Bonjour à tous
Je me heurte à un problème mineur d'optimisation de mes requètes :P
voici ma table:
nom | nb_lv | lv1 | lv2 | lv3 | lv4 | lv5 | lv6 |
Imaginons le cas suivant: nom = Bob nb_lv = 3 lv1 = 153segb lv2 = 158gfag lv3 = gfz51ge lv4,5,6 = ''
actuellement je récupère à l'aide d'un select,nb_lv ensuite je crée une requete en fonction de nb_lv que je transmet à un select
ce qui me fait 2 requetes select pour une opération banale....
N'y a-t-il pas un moyen à l'aide de LIMIT et d'une autre fonction de selectionner directement lv1,lv2,lv3 (soit les lvX remplis) et donc de réduire le nombre de requetes à 1 ?
Merci de vos réponses 
++ Filipe
__________________________________________________ [ Lien ] - Le site sur ogame de référence ! [ Lien ] - Le générateur de signatures 100% Gratuit
|
|
samedi 30 septembre 2006 à 12:11:48 |
Re : Optimisation : Un select et un autre select en fonction de la réponse du premier

nhervagault
|
Salut
Peux-tu parler plus precisment?
Moi, avoir pas toutr compris. ;-)
Je pense que ta table est mal faite tout simplement.
Si je comprends (a travers une boule de cristal)
Tu veux recuperé la valeur du champs
lvl 3 si nblvl = 3
Je ne comprends pas trop l'interets de deux requetes.
ecris ta premiere et ta deuxieme requete
Précise ton post.
Car c'est trop vague
lvi 4 si nblvl = 4
|
|
samedi 30 septembre 2006 à 12:25:05 |
Re : Optimisation : Un select et un autre select en fonction de la réponse du premier

Filipe35
|
Salut
effectivement après m'être relus, c'est très vague ce que j'ai écrit :S
Toujours le même exemple mais plus précis cette fois ^^
La table:
nom | nb_lv | lv1 | lv2 | lv3 | lv4 | lv5 | lv6 |
les valeurs:
nom = Bob nb_lv = 3 lv1 = 153segb lv2 = 158gfag lv3 = gfz51ge lv4=''
lv5=''
lv6=''
a. 1ère requête SELECT récupère nb_lv b. Ensuite je crée une requête qui va récupérer les nb_lv
premiers
levels (dans notres cas les 3 premiers lv ( lv1, lv2 et lv3 ) vu que
nb_lv = 3 )
SELECT lv1 lv2 lv3
=> 2 requêtes pour une opération assez simple :S
voila j'espère que mon problème parait plus clair maintenant ;)
++
Filipe
__________________________________________________ [ Lien ] - Le site sur ogame de référence ! [ Lien ] - Le générateur de signatures 100% Gratuit !
|
|
samedi 30 septembre 2006 à 14:19:55 |
Re : Optimisation : Un select et un autre select en fonction de la réponse du premier

nhervagault
|
Re :
Je comprends toujours pas.
Select * from matable where nom= 'bob'
Ensuite c'est au programme de géré
while ( i
|
|
samedi 30 septembre 2006 à 17:51:33 |
Re : Optimisation : Un select et un autre select en fonction de la réponse du premier

Filipe35
|
Oui tu as répondu en partie à ma question, mais je souhaite quand même éviter au maximum les SELECT * (car dans ma vraie base je n'ai pas 6 lv mais beaucoup plus) ce qui ferrai une grande réponse de la part du server SQL et donc une réponse plus lente car plus de données à transmettre. __________________________________________________ [ Lien ] - Le site sur ogame de référence ! [ Lien ] - Le gén&#
|
|
samedi 30 septembre 2006 à 18:28:19 |
Re : Optimisation : Un select et un autre select en fonction de la réponse du premier

nhervagault
|
Salut
C'est bien ce que j'ai dis au depart c'est que ta base
est mal faite.
Et tu aurais pu mettre que tu ne voulais pas utiliser de select * pour eviter de me creuser la tete a comprendre la question.
Alors tu veux
Que si tu nb = 3 3 champs ..
si nb 4 4 champs.
C'est un peu tordu.
La solution la plus propre est de refaire ta table
joueur
id nom niveau
score
niveau score id_joueur
et
faire une requete
du style
select joueur.*, score.* from joueur
inner join score on joueur.id = score.id_joueur
--> un resultat
joueur nb level score
A 3 1 3
A 3 2 10
A 3 3 45
Donc dans ton prog il te reste qu'a lire les difrent
enregistrement et à la mettre dans un tableau
voila
|
|
dimanche 1 octobre 2006 à 01:09:11 |
Re : Optimisation : Un select et un autre select en fonction de la réponse du premier

Filipe35
|
Je ne vois pas ce qu'il y a de tordu oO
J'interroge ma base pour savoir combien de variables je dois récupérer à l'aide d'une autre requête. (une certaines logique en somme)
Mais avec la lecture de tes réponses, et autres textes que j'ai lus par la suite, il semblerait que MySql ne pense pas pareil ^^
J'ai vu aussi que les SELECT * étaient déconseillés oO
Sinon peux-tu être plus précis sur la manière de recréer mes tables ?
Merci de tes réponses et d'accorder de ton temps à mon problème.
|
|
dimanche 1 octobre 2006 à 14:25:13 |
Re : Optimisation : Un select et un autre select en fonction de la réponse du premier

nhervagault
|
Salut
Pour info un select * n'est pas recommandé.
Mais souvent c'est plus interressant que de faire deux resuter
EN plus le select * est a proscrire surtout dans le cas des
des champs de type texte.
Fais un select champ1,champ2,champ3
A la place
Mais pour info un select count(*) est plus optimisé
que un select count(A)
Les bonnes pratiques ne sont pas a suivre a la lettre
et de toute maniere, tu utilises une requete optimisé
et ton programme n'est pas optimisé.
C'est un peu du gachis, il faut un tout.
Et il faut savoir ou optimisé.
Il faut optimisé, les 20% du programme
ou 80% du temps est passé.
Pour ta structure
de table
Je te propose 2 tables
detail de la table score
=========================
niveau score id_joueur
1 34 A
2 56 A
3 123 A
1 45 B
Voila
|
|
lundi 2 octobre 2006 à 17:52:34 |
Re : Optimisation : Un select et un autre select en fonction de la réponse du premier

Filipe35
|
Merci bien, je vais essayer d'appliquer tout ça ;) __________________________________________________ [ Lien ] - Le site sur ogame de référence ! [ Lien ] - Le gén&#
|
|
Cette discussion est classée dans : fonction, select, nb, optimisation, lv
Répondre à ce message
Sujets en rapport avec ce message
return cursor, select en parametre.... [ par abdoulax ]
select mafunction( (select * from matable where item>50) );Est-il possible de passer une requête en paramètre d'une fonction stockée?Cette fonction st
Debutant C# utilisant MySQL [ par olibara ]
BonjourJ'hesite entre le forum SQL et le Forum C#Je poste donc dans les deuxJ'ai un petit probleme conceptuel de débutant en C# et concernant l'update
Problème avec champs crée dans requête SELECT [ par sebix ]
Bonjour à tous,J'ai une requete SELECT ou je crée un champs en focntion de la valeur de deux autres champs :SELECT t.*, NB_J = casewhen EXPRESSION_DU
procedure select [ par abdoulax ]
Bonjour,Je suis en train de faire un projet oracle pour mes études. Ce projet mélange du php avec une base oracle. Lors d'un bilan en cours de projet
help svp [ par melleweb ]
je cherche une fonction de manipulation des chaines de caractères en pl/sql ou sql pareil a cet exemple:fonction_recherchée('salut tout le monde','mon
helr please [ par melleweb ]
je cherche une fonction de manipulation des chaines de caractères en pl/sql ou sql pareil a cet exemple:fonction_recherchée('salut tout le monde','mon
Génération de graphiques [ par pillsmen ]
Bonjour à tous,Mon problème concerne la génération d'un graphique dans un état sous ACCESS.On va commencer par le commencement ^^, je pense qu'un exem
Problème avec DateDiff [ par Chatbour ]
Salut à tous,j'ai la requête suivante :SELECT DateDiff("j", #02-06-2007#, #06-04-2004#)FROM matable;l'erreur : "Appel de procédure incorrect"j'ai test
Conversion de dates [ par Chatbour ]
Salut à tous je voudrais savoir s'il existe une fonction Access qui convertie les date à l'anglaise (#mois-jour-année#) au format français (#jour-mois
Erreur parametrage de clause SELECT [ par zen69 ]
Bonjours à tous!J'ai un problem ici avec une Proc Stockée que je suis en train de construire.WHILE (@loop BEGIN SET @fld_list = @fld_list +
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|