optim requete - SQL/NoSQL - Programmation
Marsh Posté le 09-02-2009 à 13:03:06
donny3 a écrit : Bonjour, |
Non, ce n'est pas la mmême chose...
La deuxième requête plante
donny3 a écrit : en faite je veux savoir si un select imbriqué |
Non.
Le résultat sera le même, mais dans le deuxième cas, on fais un SELECT *, puis on fait un SELECT * du résultat, donc fatalement la requête est pllus gourmande...
Marsh Posté le 09-02-2009 à 13:55:09
macgawel a écrit : |
non ca ne plante pas.
en fait cela va dépendre de la complexité de ta requête, le mieux pour bien cerner cela est d'apprendre a comprendre le plan d'exécution, si les étapes ne sont pas dépendantes l'optimiseur pourrait tout faire en une passe.
Pour le cas que tu donnes ça doit être le cas.
Marsh Posté le 09-02-2009 à 14:27:44
casimimir a écrit : non ca ne plante pas. |
Code :
|
Et elle donnerait quel résultat ?
Marsh Posté le 09-02-2009 à 14:52:49
macgawel a écrit :
Et elle donnerait quel résultat ? |
he bien l'équivalent de: select * from matable
je suis ptetre mal réveillé mais je ne vois pas ou est le prob
Marsh Posté le 09-02-2009 à 15:09:32
Si je me trompe pas, le matable en rouge n'est donc pas un nom de table, mais ce serait un alias pour l'ensemble ramené par la sous-requête entre parenthèses. Comme il y a aussi une table qui s'appelle matable, cela ne rend pas la requête très claire.
Le résultat sera donc le même dans les deus cas, mais si on me laisse chosir, je prendrais la version select * from matable.
Marsh Posté le 09-02-2009 à 15:35:34
SQL accepte un nom de table comme alias ?
Il faudra que je teste (encore que c'est d'une utilité restreinte...)
Marsh Posté le 09-02-2009 à 16:53:46
ca marche sous oracle, mais la vraie question est : quel est le plan d'exécution ?
j'ai fais un test sur une table de moins de 100 lignes, avec une base en mode CHOOSE :
Code :
|
le plan d'exécution est le même qu'un "select *" à savoir un accès full à la table.... donc pour Oracle ca la même chose
Marsh Posté le 09-02-2009 à 11:01:32
Bonjour,
Une question au specialiste d'oracle :
est ce que faire cette requete
select * from matable;
est la même chose que de faire
select * from
(select * from matable) matable;
en faite je veux savoir si un select imbriqué
et la meme chose qu'un select simple ?
Merci