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

SQL Oracle Discussion :

Parse, Execute, Curseurs & PHP


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 150
    Par défaut Parse, Execute, Curseurs & PHP
    Voila mon probleme.

    J'utilise PHP + PEAR

    Le principe de fonctionnement de mon appli :

    1. Si la requete n'a jamais été préparée, la préparer (PEAR::prepare() = OCIParse), stocker le statement retourné
    2. Si la requete a déjà été executée, retrouver le statement
    3. Executer la requete (PEAR::execute() = OCIBindByName, OCIExecute)

    Bon ben quand je fais tourner un peu mon appli, je me prend un ORA-01000 Too many open cursors...

    Alors j'ai une serie de questions :

    A. Comment sont crées le curseurs, à quoi me servent ils
    B. Comment les fermer
    C. Si je les ferme, ca fait quoi au niveau des perf ?

    Pour info, les requetes c'est des INSERT ou des SELECT qui retrounent quelques lignes seulement...

    Merci des vos lumieres !

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    A. Comment sont crées le curseurs, à quoi me servent ils
    Un curseur est créé par Oracle pour exécuter toute requête DML (SELECT, INSERT, UPDATE, DELETE) d'après le Concepts Guide. C'est une structure interne à Oracle qui sert à exécuter les requêtes SQL.

    B. Comment les fermer
    Cela dépend de l'environnement/du language qui l'a ouvert. En général il faut fermer les curseurs explicitement (sauf cas particulier comme les curseurs implicites en PL/SQL): au niveau de l'OCI en C, je suppose (mais je ne suis pas sûr) que OCIStmtRelease ferme le curseur.

    C. Si je les ferme, ca fait quoi au niveau des perf ?
    Difficile à dire de façon générale: vous gagnez peut-être du temps de compilation du curseur (parsing), vous perdez un peu de temps à la fermeture du curseur, vous utilisez un peu moins de mémoire côté serveur ... A vous de le tester

Discussions similaires

  1. Parse code HTML avec PHP
    Par naourass dans le forum Langage
    Réponses: 3
    Dernier message: 19/05/2006, 08h12
  2. [Système] Parsing d'une page PHP
    Par Royd938 dans le forum Langage
    Réponses: 2
    Dernier message: 08/05/2006, 12h21
  3. [Système] Execution de script php
    Par Anduriel dans le forum Langage
    Réponses: 5
    Dernier message: 24/12/2005, 15h01
  4. Réponses: 6
    Dernier message: 23/12/2005, 13h51
  5. Réponses: 4
    Dernier message: 15/12/2005, 18h28

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