IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

limit et temps d'execution avec oracle et PHP


Sujet :

Oracle

  1. #1
    Membre habitué Avatar de dor_boucle
    Inscrit en
    Juin 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 147
    Points : 136
    Points
    136
    Par défaut limit et temps d'execution avec oracle et PHP
    hello à tous,

    je travaille actuellement sur la realisation d'un outil permettant de gerer des 'affaires' a l'aide d'une base oracle et PHP.

    habitué de Mysql, je me susi dis 'youpi', oracle et requetes imbriqué ca va le faire.... et effectivement ca le fait ..

    seulement je susi assez outré... pour pas dire plus, sur le temps d'execution d'une requete simple tel qu'un select contenant apeine plus de 2700 enregistrement. En effet , ma page expire avant meme d'affaicher mes resultats !!! (meme si je peu configurer sur le serveur le d'expiration plus de 30sec c long).

    alors oui mais pq affichicher 2700 lignes.... ben justement, je en veut que les 10 prmeier elments de cette requete mais LIMIT 1,10 n'existe pas ss oracle !!!!! il faut passé par une requete imbriqué, ne limitant absolument pas le tps d'execution de la requete contrairmemt a mysql!!!!

    alors je ne sait plus koi penser.

    comment faire un listying de mes affaires decoupé en page? ... mysql est quand meme plus perfomabt du coup ... mais mes table soint si compliqué que je ne peu me passer des requettes imbriquées.

    si quelqu'un peui m'aiguiller ... le je deprime
    J'ai l'impression d'engager un combat sans précédent avec la nature. Je vais bien, le moral est bon, je poursuis le vol. (Youri Gagarine)

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 412
    Points : 1 326
    Points
    1 326
    Par défaut
    je pense que le time out ne viens pas de la requete en soit mais de la génération de la page

    pourrais tu coller ta requete ici afin que l'on puisse voir ce qu'il se passe clairement

  3. #3
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut Re: limit et temps d'execution avec oracle et PHP
    Citation Envoyé par dor_boucle
    mysql est quand meme plus perfomabt du coup ...
    sacrilége

    Envoie la requête qu'on lui fasse la peau

  4. #4
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut Re: limit et temps d'execution avec oracle et PHP
    Citation Envoyé par dor_boucle
    alors oui mais pq affichicher 2700 lignes.... ben justement, je en veut que les 10 prmeier elments de cette requete mais LIMIT 1,10 n'existe pas ss oracle !!!!! il faut passé par une requete imbriqué, ne limitant absolument pas le tps d'execution de la requete contrairmemt a mysql!!!!
    Effectivement, avant de porter tout jugement sur un produit, dont, selon vos dires, vous n'êtes pas expert, livrez donc effectivement votre requête...
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 64
    Points : 73
    Points
    73
    Par défaut
    Bonjour,

    avec rownum il n'y a pas moyen de faire un truc genre limit ?

    ex:
    pour obtenir que les 10 premiers.

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    son but est de paginer les résultats -> les 10 premiers, les 10 suivants, etc... c'est pourquoi j'aimerai voir la requête

  7. #7
    Membre habitué Avatar de dor_boucle
    Inscrit en
    Juin 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 147
    Points : 136
    Points
    136
    Par défaut
    ben le pb ne vien tpa sde ma requette a proprement parlé...

    je fait un

    SELECT * FROM AFFAIRE ....

    en testant avec winSQL, la requette met plus de 60 secs à s'executer. Seulement la page expirer au bout de 30 seconde (configuration IIS) .

    en mysql un
    SELECT * FROM AFFAIRE LIMIT 1,10
    permet de limiter l'execution de la requete .. donc ma page n'expire pas.

    car php a besoin de l'integralité des resultat de la requete, pour pouvoir traiter et mettre en forme les resultat.

    dans ce sens, et malgres toute le puissance d'oracle, a moin que l'on puisse reduirte le tps d'execution de cette requete, mysql est plus performant.
    J'ai l'impression d'engager un combat sans précédent avec la nature. Je vais bien, le moral est bon, je poursuis le vol. (Youri Gagarine)

  8. #8
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM AFFAIRE WHERE ROWNUM <= 10
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  9. #9
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Citation Envoyé par dor_boucle
    SELECT * FROM AFFAIRE ....
    Il n'y a pas de WHERE ? Il y a quoi à la place des ... normalement ? Parce que vu la volumétrie, ça devrait sortir les résultats en bcp moins d'une minute à moins que tu as vraiment une petite machine

  10. #10
    Membre habitué Avatar de dor_boucle
    Inscrit en
    Juin 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 147
    Points : 136
    Points
    136
    Par défaut
    je m'incline .... oracle c puissant

    mais une question subsidiaire ...

    si je veut les resultats du 10 eme au 20 eme

    j'ai essayé un
    select * from aff_gene WHERE ROWNUM >= 10 and ROWNUM <= 20

    mais ca ne passe pas...

    merci bcp de vos reponses , je me suis un peu emporter ...
    J'ai l'impression d'engager un combat sans précédent avec la nature. Je vais bien, le moral est bon, je poursuis le vol. (Youri Gagarine)

  11. #11
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075

  12. #12
    Membre habitué Avatar de dor_boucle
    Inscrit en
    Juin 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 147
    Points : 136
    Points
    136
    Par défaut
    merci , mais je bn'arrive pas a faire fonction t requetes ...

    lorsque je tente

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select * from ( 
     select table_name,column_name, RANK() OVER (order by table_name,column_name) a from aff_gene             ) 
     where  a  between 10 and 19;
    y me renvoie un nom de colone nom valide.

    j'ai oracle 8i 8.1.7 ... es ce pour cela?

    [Balises code ajoutées par Helyos]
    J'ai l'impression d'engager un combat sans précédent avec la nature. Je vais bien, le moral est bon, je poursuis le vol. (Youri Gagarine)

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 64
    Points : 73
    Points
    73
    Par défaut
    C'est parce que vous avez oublié de modifier table_name,column_name qui doivent être des champs de votre table.

  14. #14
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Effectivement, de manière générique voila comment marche la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select * from ( 
     select <colonnes à sélectionner>, RANK() OVER (order by <tuple unique : la PK en principe>) a from <ta table> ) 
     where  a  between <borne inf> and <borne sup>;

  15. #15
    Membre habitué Avatar de dor_boucle
    Inscrit en
    Juin 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 147
    Points : 136
    Points
    136
    Par défaut
    alors merci ca marche ....

    mais y a tjrs un mais .... sous winSQL ... pas avec les fonction de PHP (je trouve ca etrange d'ailleur)

    mais en tout cas merci bcp...
    J'ai l'impression d'engager un combat sans précédent avec la nature. Je vais bien, le moral est bon, je poursuis le vol. (Youri Gagarine)

  16. #16
    Membre habitué Avatar de dor_boucle
    Inscrit en
    Juin 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 147
    Points : 136
    Points
    136
    Par défaut
    hummmm .....

    alors la c plus oracle ki me decois, mais php....

    les php pour acceder a oracle (oci_....) sont moin performante que les fonction odbc de php ...

    votre requete fonctionne en odbc et en plus g plus de pb d'expiration.

    allez comprendre...
    J'ai l'impression d'engager un combat sans précédent avec la nature. Je vais bien, le moral est bon, je poursuis le vol. (Youri Gagarine)

  17. #17
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Utilisez-vous les drivers jdbc corrects ?

  18. #18
    Membre habitué Avatar de dor_boucle
    Inscrit en
    Juin 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 147
    Points : 136
    Points
    136
    Par défaut
    jdbc = java !

    si je n'avais pas de liens odbc ca ne marcherais pas, or le lien odbc focntionne mieux que les focntions oracle specialement developé pour acceder a cette base ...
    J'ai l'impression d'engager un combat sans précédent avec la nature. Je vais bien, le moral est bon, je poursuis le vol. (Youri Gagarine)

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 64
    Points : 73
    Points
    73
    Par défaut
    Zarbi cette histoire !

    Peut-être qu'un post dans le forum php permettrait d'éclairer l'affaire ...

  20. #20
    Membre habitué Avatar de dor_boucle
    Inscrit en
    Juin 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 147
    Points : 136
    Points
    136
    Par défaut
    j'ai deja posté , mais pas encore de reponses....


    g php 4.3
    ... en totu cas ca me semble bizarre
    J'ai l'impression d'engager un combat sans précédent avec la nature. Je vais bien, le moral est bon, je poursuis le vol. (Youri Gagarine)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 5
    Dernier message: 01/07/2015, 11h13
  2. Limiter le temps d'execution d'une fonction
    Par gangsoleil dans le forum C
    Réponses: 15
    Dernier message: 16/07/2014, 18h23
  3. limiter le temps de connexion avec freeradius
    Par yabo84 dans le forum Sécurité
    Réponses: 1
    Dernier message: 25/09/2012, 04h43
  4. Limiter le temps d'execution d'exec()
    Par skeud dans le forum Langage
    Réponses: 3
    Dernier message: 27/06/2011, 10h00
  5. Réponses: 3
    Dernier message: 14/04/2009, 18h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo