Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1487 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  deux type de requete laquelle est la mieux ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

deux type de requete laquelle est la mieux ?

n°1248218
Berceker U​nited
PSN : berceker_united
Posté le 18-11-2005 à 11:21:55  profilanswer
 

voici deux requetes qui récupére exactement les mêmes résultats.
SELECT c.name,b.name FROM

Code :
  1. sysobjects a JOIN syscolumns b ON a.id=b.id
  2. JOIN systypes c ON b.xtype=c.xtype WHERE a.name='tb_message';
  3. //=========
  4. SELECT c.name,b.name FROM sysobjects a, syscolumns b, systypes c
  5. WHERE a.id=b.id AND b.xtype=c.xtype AND a.name='tb_message';

 
 
Pendant un bon moment j'utilisais la seconde methode pour faire mes jointures. Des personnes m'ont dit que le c'est pas bon surtout concernant les performance mais sans donner plus d'explication. Dans SQL server j'ai fait afficher "le plan d'execution" de ces deux requetes et le resultat retourné est exactement le même.  
Pour vous y a t'il une reelle différence ?

mood
Publicité
Posté le 18-11-2005 à 11:21:55  profilanswer
 

n°1248248
Beegee
Posté le 18-11-2005 à 11:54:27  profilanswer
 

Non, aucune.
 
(seule la syntaxe change, suivant qu'elle se plie à la norme SQL ou pas)

n°1248254
Berceker U​nited
PSN : berceker_united
Posté le 18-11-2005 à 11:57:51  profilanswer
 

Merci pour ton intervention :jap:
Moi je pensais que le moteur agirait différement selon la synthaxe. :??:

n°1248267
Elmoricq
Modérateur
Posté le 18-11-2005 à 12:04:44  profilanswer
 

Plutôt que de faire une jointure avec sysobjects, pourquoi ne pas utiliser object_id() ?
 
Genre :  
select c.name, b.name  
from syscolumns b, systypes c
where b.id = object_id("tb_message" )
etc...

n°1248347
Berceker U​nited
PSN : berceker_united
Posté le 18-11-2005 à 13:56:57  profilanswer
 

Elmoricq a écrit :

Plutôt que de faire une jointure avec sysobjects, pourquoi ne pas utiliser object_id() ?
 
Genre :  
select c.name, b.name  
from syscolumns b, systypes c
where b.id = object_id("tb_message" )
etc...


J'ai testé ce que tu viens de m'indiquer mais apparement il attend plutôt un nom de champs qu'un nom de table.

n°1248355
Elmoricq
Modérateur
Posté le 18-11-2005 à 14:01:07  profilanswer
 

Tu as dû oublier les guillemets, parce que dans ce cas-là il retourne en effet un message du genre : "Invalid column name '...' "
 
Mais avec les guillemets ça fonctionne très bien :

select object_id("sysobjects" )
             
 -----------  
           1  
 
(1 row affected)


 
http://msdn.microsoft.com/library/ [...] z_1410.asp

n°1248372
Berceker U​nited
PSN : berceker_united
Posté le 18-11-2005 à 14:11:26  profilanswer
 

Elmoricq a écrit :

Tu as dû oublier les guillemets, parce que dans ce cas-là il retourne en effet un message du genre : "Invalid column name '...' "
 
Mais avec les guillemets ça fonctionne très bien :

select object_id("sysobjects" )
             
 -----------  
           1  
 
(1 row affected)


 
http://msdn.microsoft.com/library/ [...] z_1410.asp


J'ai fais à l'identique et c'est toujours là même erreur. Je remet pas en cause la synthaxe puisque msdn l'indique bien ainsi. :/


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  deux type de requete laquelle est la mieux ?

 

Sujets relatifs
value pour un input de type fileType de donnée ERREUR énorme!
requete sql pas facile ...requete access
Optimisation du temps d'execution d'une requete sous oracleLe parametre numérique pour les champs de type numeric sert à quoi ?
Optimisation de requete PL/SQLConnaître le type d'un fichier
Le value dans un type=fileDelphi-Crystal - Verifier type parametre
Plus de sujets relatifs à : deux type de requete laquelle est la mieux ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR