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

PL/SQL Oracle Discussion :

DML : Le temps de réponse est étrangement différent


Sujet :

PL/SQL Oracle

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mai 2015
    Messages : 5
    Points : 4
    Points
    4
    Par défaut DML : Le temps de réponse est étrangement différent
    Bonjour,

    Je créé et je teste pour mon travail des procs stocks en PL SQL.
    Avant toute chose, je n'ai pas trouvé quelque chose dans le forum ressemblant à ma problématique.


    Actuellement, je n'arrive pas à comprendre pourquoi mon DML par un DELETE génère autant de différence entre le déclenchement par un perl sur un serveur donné et le déclenchement en base par pl-sql developer.

    Je m'explique.
    Je prends un exemple comme celui ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    DECLARE 
     
    PROCEDURE ma_procedure
     
    BEGIN
     
    DELETE FROM matable1 where identifiant in (select identifiant from matable2);
     
    END;
    PS : j'ai 10000 identifiants à supprimer


    Je lance via le petit perl que j'ai mis en place du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    my $req ="
    		BEGIN
    		             ma_procedure;
    		END;";
    Je mets 12 minutes pour les supprimer.
    Maintenant je lance le bloc directement sur pl-sql developer :
    45 secondes.


    Aussi, je vous pose la question si vous avez quelques pistes que je puisse explorer

    Merci à vous

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Et si vous répétez le test vous obtenez les mêmes temps de réponses ?
    Il est possible que la suppression des données n'avance pas parce que des enregistrements sont verrouillé par une autre session.

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mai 2015
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par mnitu Voir le message
    Et si vous répétez le test vous obtenez les mêmes temps de réponses ?
    Il est possible que la suppression des données n'avance pas parce que des enregistrements sont verrouillé par une autre session.
    Merci mnitu pour ton aide

    Alors ce que j'ai fait, c'est que j'ai cloné des tables (même tablespace) avec des noms différents pour qu'il n'y ait pas de problème de session autre que la mienne.
    En refaisant la même opération
    Même en refaisant l'opération avec au préalable, un drop/create de mes tables de test, j'en arrive au même résultat.

    J'ai investigué sur v$sql_plan et v$sql mais les infos sont semblables.
    Il y a bien quelque chose qui cloche mais où ?

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Quand on comprends pas ce qui se passe il faut obtenir les données opérationnelles de l'exécution de la procédures. Donc ajoutez dans le code perl avant l'exécution de la procédure les instructions qui permettront de mesurer le laps de temps de l'exécution de la procédure. Activez dans la procédure la trace sql étendue. Le but est de voir où les 12 minutes passent. Il est évident que vous devez bien vérifier que vous allez comparer des choses comparable: exécution de la même procédure, dans les mêmes conditions, etc..

    Remarque : le langage SQL accepte l'instruction CALL qui permet d'appeler une procédure stockée, pas besoin donc d'utiliser un block PL/SQL.

  5. #5
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mai 2015
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci mnitu.
    Bon, je vais creuser dessus ( peut être avec un rapport TKPROF)

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/01/2014, 11h42
  2. Réponses: 5
    Dernier message: 21/10/2013, 18h53
  3. Réponses: 13
    Dernier message: 21/04/2010, 14h49
  4. les différents temps de réponse en SGBD
    Par mourad800077 dans le forum Optimisations
    Réponses: 2
    Dernier message: 09/01/2007, 00h54
  5. Temps de réponse entre deux sites
    Par coup dur dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 16/10/2003, 15h26

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