cs_Benz
Messages postés196Date d'inscriptionjeudi 3 janvier 2002StatutMembreDernière intervention 7 juin 2007
-
19 mars 2004 à 15:42
cs_Benz
Messages postés196Date d'inscriptionjeudi 3 janvier 2002StatutMembreDernière intervention 7 juin 2007
-
20 oct. 2005 à 14:40
Bonjour,
J'ai une question avec un commentaire qui peut paraître étrange...
Lorsque l'on constuit une requète de selection, on peut le faire de deux manières au moins :
REQ = "SELECT * FROM MaTable WHERE..."
ou aussi
REQ = "SELECT Nom, Prenom, Ville FROM MaTable WHERE..."
Ma question est simple :
Laquelle de ces deux façons d'écrire une requète est-elle la plus gourmande en ressources ?
J'ai entendu un jour que le fait de spécifier les champs souhaités était plus lourd que de tous les prendre par défaut.
Alors ?
Qui en sait plus ?
Que faire quand on n'a besoin de de 3 champs sur une table qui en contient 50 ?
C'est une simple question de culture personnelle et ca ne changera pas la face du monde mais... j'aimerais bien savoir.
dupython
Messages postés4Date d'inscriptiondimanche 23 décembre 2001StatutMembreDernière intervention19 mars 2004 19 mars 2004 à 16:54
Ce n'est que mon avis avec ma petite expérience :
Lorsque tu fais un * et que tu ne te sers pas des trois quarts des colonnes... faut pas.
Parce que ta requete est plus petite mais le résultat.... fo le transférer !
Moi je conseille plutot de spécifier les colonnes, je ne te parle pas en ressource mais en rapidité: moins de trucs a transférer, donc ca va plus vite.
L'exception est si tu utilise un count(*), la, il vaut mieux utiliser l'étoile, c'est plus facile de compter les lignes.
Si c'est dans un exists, je dois dire que je ne sais pas, je crois que c'est mieux l'étoile aussi car le résultat ne t'est pas transféré il reste en local a l'execution de la requete.
vlaad
Messages postés79Date d'inscriptionmardi 29 juin 2004StatutMembreDernière intervention18 décembre 20063 20 oct. 2005 à 13:35
Un bon DBA te dirai qu'il faut utiliser les noms de champs et bannir l'utilisations de l'étoile.
L'étoile peut à la limite servir pour faire des tests avec un analyseur de requetes mais c'est tout.
De plus ton code SQL sera plus comprehensible sur des requetes importantes, en taille, cela permet d'éviter les doublons par exemple...
Les programmeurs sont rois....Ceux qui ne croient pas en nous sont des fous...
cs_Benz
Messages postés196Date d'inscriptionjeudi 3 janvier 2002StatutMembreDernière intervention 7 juin 2007 20 oct. 2005 à 14:06
Merci de vos réponses.
Pour l'instant j'utilise systématiquement *, parce que c'est plus
simple à écrire (et aussi plus rapide que de spécifier 30 champs) et
que ça tiens moins de place...mais je vais peux être adapter mon code à
présent si les bon DBA banissent l'étoile :-)
Question performance, nous verrons bien ce que ça donne.
Benoit
<hr size="2" width="100%">Besoin d'argent ? Domicile-Job >> Travail à domicile
Envie de jouer ? Le Sanktuaire >> Ressources jeux de roles