Bonjour a tous
J'espere etre clair dans ma demande et mes explications
Je me lance ...
Je voudrais afficher juste quelques lignes d'une liste (resultant d'une requete de selection assez complexe).
ce n'est pas un probleme a faire avec ROWS x TO y...
quand on commence avec x = 1, on peut ainsi naviguer dans cette liste, morceau par morceau.
Mais le probleme se complique lorsque l'on veut commencer par x <> 1 et donc que ce x doit etre le numero de la ligne dans correspondant aux criteres de recherche.
RANK et ROW_NUM n'existant pas dans firebird, il y a des equivalents :
* un present dans le FAQ (ca marche)http://firebird.developpez.com/faq/?...uetes#TRA00343
* en utilisant table temporaire
les 2 fonctionnent, mon probleme est surtout lie au temps de traitement. Sur une table test (4 000 000 lignes), il avoisine les 3-4 mn (evidement les index sont utilises). Ainsi, a chaque fois que l'utilisateur changera le type de visualisation (ORDER BY) ou choisira un filtre differents (WHERE), une requete de reaffectation des rangs (j'invente le terme) doit etre effectuee (donc 4mm).
Est ce que cela vous semble un temps raisonnable ? (4 mm pour 4M lignes), sinon comment le reduire
et y aurait il une methode plus subtile que les 2 precitee ? (pour l'instant je me suis tourne vers la table temporaire)
a+
olivier
PS : si vous le voulez je peux vous fournir ma requete, mais je ne suis pas sur que ce soit indispensable (vous etes juge)
Partager