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

Administration Oracle Discussion :

Pb OpenCursor par rapport au max :(


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Janvier 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 10
    Par défaut Pb OpenCursor par rapport au max :(
    Bonjour,
    J'ai un soucis quand à la compréhension des opencursors et ca m'embête bien parce que je dois surveiller l'usage qu'il en est fait via un shell.
    En fait je prends les opencursors utilisés et effectue un pourcentage avec le parametre en base et si ca depasse un certain seuil, j'ai une alerte.
    La ou je coince, c'est là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    select count(*) from v$open_cursor;
     
    COUNT(*)
    -----------
          683
     
    select value from v$parameter where name ='open_cursors';
     
    VALUE
    -----------
           320
    Là c'est pour une 9.2 mais j'ai le meme pb pour une 10

    C'est normal ce genre de truc ? Du coup comment je peux faire pour avoir le pourcentage d'opencursor utilisé par rapport au seuil max de ma base a un instant T ? (c'est pour eviter de bouffer tout les curseurs en fait et éviter que les applications plantent).

    Merci pour vos éclaircissement parce que là je nage

    [EDIT]
    ET si je travailles plus sur un truc du genre pour avoir le nombre d'opencursor ouverts sur toutes la base est-ce que ca ne serait pas plus pertinent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select sum(a.value)
    from v$sesstat a, v$statname b
    where a.statistic# = b.statistic#
    and b.name = 'opened cursors current'
    Par contre pour le comparer à quoi, ca reste un mystere (je dois avoir un pourcentage en résultat).

  2. #2
    Membre émérite Avatar de 13thFloor
    Homme Profil pro
    DBA Oracle freelance
    Inscrit en
    Janvier 2005
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : DBA Oracle freelance

    Informations forums :
    Inscription : Janvier 2005
    Messages : 670
    Par défaut
    Le paramètre OPEN_CURSORS est relatif à une session.
    V$OPEN_CURSOR est relatif à l'ensemble des curseurs de la base.
    Tu devrais placer ton alerte en faisant le ratio curseurs ouverts par session/curseur max possible.
    Donc un groupement des curseurs (de v$open_cursor) par SID :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select distinct sid,count(*) from v$open_cursor group by sid;

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 10
    Par défaut
    Citation Envoyé par 13thFloor Voir le message
    Le paramètre OPEN_CURSORS est relatif à une session.
    V$OPEN_CURSOR est relatif à l'ensemble des curseurs de la base.
    Tu devrais placer ton alerte en faisant le ratio curseurs ouverts par session/curseur max possible.
    Donc un groupement des curseurs (de v$open_cursor) par SID :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select distinct sid,count(*) from v$open_cursor group by sid;
    Mais si je tente sur v$sesstat ca joue pas ?
    Parce qu'avec le select distinct par sid, je vais devoir mettre en place une boucle pour chaque ligne sortie non ?

  4. #4
    Membre émérite Avatar de 13thFloor
    Homme Profil pro
    DBA Oracle freelance
    Inscrit en
    Janvier 2005
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : DBA Oracle freelance

    Informations forums :
    Inscription : Janvier 2005
    Messages : 670
    Par défaut
    Avec cela tu auras tous les sid qui dépassent le seuil que tu t'es fixé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCT sid,count(*) FROM v$open_cursor 
    having count(*)/&valeur_de_open_cursors>&ton_ratio
    GROUP BY sid;

Discussions similaires

  1. Select par rapport à un MAX
    Par ishika83 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 24/11/2009, 13h10
  2. Réponses: 1
    Dernier message: 23/11/2007, 14h11
  3. Recherche max par rapport à un critère
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/08/2007, 07h56
  4. [Sql server] Récupérer max(date) par rapport a un numéro
    Par t1marlartiste dans le forum Langage SQL
    Réponses: 5
    Dernier message: 19/07/2007, 15h55
  5. [Choix] Quelles attentes par rapport aux SGBD ?
    Par thierry34 dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 13/07/2002, 20h08

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