[ORACLE] Problème execution requête SELECT

Problème execution requête SELECT [ORACLE] - SQL/NoSQL - Programmation

Marsh Posté le 01-06-2007 à 11:56:14    

Bonjour à tous. Je suis entrain de developpé une application php avec une base de donnée oracle.
Lors de l'execution d'une requête SELECT :

Code :
  1. SELECT * FROM ma_table;


Le problème est que les résultats retournés ne démarre pas depuis la première occurence mais de la 43 et ne vont pas à la dernière mais à la 690ieme (sur +de1000). :pt1cable:
Le problème m'arrive aussi bien depuis php que depuis sqlplus.
Quelqu'un saurait-t-il d'où cela vient ? :??:  
 
Merci à tous :)

Reply

Marsh Posté le 01-06-2007 à 11:56:14   

Reply

Marsh Posté le 01-06-2007 à 12:02:28    

t'es sûr que c'est pas seulement un problème d'ordre des lignes ? :heink:

Reply

Marsh Posté le 01-06-2007 à 12:05:08    

hmm je vais voir ça :) (j'espère que c'est pas le cas sinon j'aurai vraiment l'air bête .....)

Reply

Marsh Posté le 01-06-2007 à 12:06:58    

ben j'espère pour toi que c'est ça (vaut mieux passer pour un con 5 minutes que de ramer 5 jours pour faire marcher un truc :D)

Reply

Marsh Posté le 01-06-2007 à 13:00:14    

bon ben c'était ça :p... dsl d'avoir déranger pour rien :)


Message édité par b3ck le 01-06-2007 à 14:12:21
Reply

Marsh Posté le 01-06-2007 à 13:54:31    

;)

Reply

Marsh Posté le 02-06-2007 à 13:51:06    

c'est pourtant simple, ORACLE ne garantie pas l'ordre dans lequel il rappatrie les lignes quand on ne lui précise pas d'ORDER BY qui devrait à mon sens devenir une clause obligatoire.

Reply

Marsh Posté le 02-06-2007 à 14:20:12    

je vois pas en quoi ça devrait être obligatoire dans la mesure où tu n'as pas forcément besoin d'un ordre précis et que ça risque de te pourrir les perfs :heink:

Reply

Marsh Posté le 02-06-2007 à 15:28:37    

moi ce qui me dérange surtout, c'est l'utilisation abuside de "group by" pour faire des tris. parceque autant un "order by" ne pourri pas trop les perfs, autant un "group by" fout à genoux le serveur. deplus, nul part dans les specs du moins SGBD le "group by" signifie un tri. ce n'est qu'un effet de bord du regroupement (informatiquement parlant, il est plus facile de repérer des doublons quand ils sont triés que lorsqu'ils sont éparpillés). Mais en aucun cas un "group by" doit se substituer à "order by".

Reply

Marsh Posté le 03-06-2007 à 16:44:27    

tet2neu a écrit :

je vois pas en quoi ça devrait être obligatoire dans la mesure où tu n'as pas forcément besoin d'un ordre précis et que ça risque de te pourrir les perfs :heink:


 
donne moi seulement un exemple pour lequel on peut récupérer les lignes dans n'importe quel ordre. Dans une application digne de ce nom, c'est toujours triés. Je n'ai jamais rencontré de cas concrès pour cela.  
 
Le seule que je pourrais voir éventuellement, c'est si on fait un traitement background à un certain moment. La l'ORDER BY n'est pas obligatoire puisqu'on ne présente rien à l'utilisateur.  

Reply

Marsh Posté le 03-06-2007 à 16:44:27   

Reply

Marsh Posté le 03-06-2007 à 18:00:14    

Il se trouve justement que des requetes où l'ordre est totalement inutile j'en fais tous les jours.
Je vais pas détailler mon boulot ici, c'est pas l'endroit, mais j'enchaine les requetes et l'ordre n'a aucune importance dans 99% des cas.
De plus, vu que les traitements durent des heures et que les perfs sont un facteur important (il s'agit de migrations entre deux bases différentes), l'order by ne ferait que ralentir.


Message édité par tet2neu le 03-06-2007 à 18:01:03
Reply

Marsh Posté le 03-06-2007 à 21:00:45    

oui donc c'est ce que je disais, à part faire du background, il n'y a aucun interet de ne pas le préciser.

Reply

Marsh Posté le 03-06-2007 à 21:04:58    

non mais c'est pas le problème :heink:  
Je te réponds sur le fait que cette clause devrait, d'après toi, être obligatoire. Rien à battre que dans la majorité des cas on ait besoin d'un order by, on l'ajoute quand on a besoin, c'est tout.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed