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

Outils Firebird Discussion :

Obtenir les détails d'une sous-procédure stockée


Sujet :

Outils Firebird

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    février 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : février 2009
    Messages : 29
    Points : 18
    Points
    18
    Par défaut Obtenir les détails d'une sous-procédure stockée
    Bonjour,

    Comment puis-je savoir quels sont les arguments définis quand une sous-procédure est lancée ?

    J'ai deux procédures : P1 qui va lancer P2. J'aimerais savoir quels sont les arguments de P2 lors de l'exécution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    CREATE OR ALTER PROCEDURE P1 (a1 int, a2 int, a3 int, a4)
    BEGIN
     
        ...select * from P2(a1, a2, x1, y1)
    END
     
    CREATE OR ALTER PROCEDURE P2 (a1 int, a2 int, x1 int, y1 int)
    BEGIN
     
    ...
    END
    Comment dois-je faire pour avoir le détails de "select * from P2(?,?,?,?) ?
    Actuellement, on écrit dans une table "log" les valeurs des arguments (a1, a2,...) et on consulte cette table après le lancement de la procédure P1. Cela s'avère fastidieux quand il y a beaucoup de sous-procédures et d'arguments.

    Est-ce qu'un outil permet d'afficher le détails de toutes les sous-procédures lancées ? (et j'en profite aussi... est-ce possible d'avoir les temps d'exécution).

    J'utilise Intellj, Dbeaver et FlameRobin. J'utilise aussi FB TraceManager 3. Avec Firebird 2.5

    Merci bien.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    11 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 11 284
    Points : 29 232
    Points
    29 232
    Billets dans le blog
    29
    Par défaut
    Bonjour,
    Citation Envoyé par dranakan Voir le message
    Comment puis-je savoir quels sont les arguments définis quand une sous-procédure est lancée ?
    ...
    Est-ce qu'un outil permet d'afficher les détails de toutes les sous-procédures lancées ? (et j'en profite aussi... est-ce possible d'avoir les temps d'exécution).
    J'avoue être un peu dans le flou.
    La première idée qui m'est venue c'est : les tables système et celles de monitoring encore que, dépendant de la version (2.5 ou 3) il doit y avoir des différences
    La seconde, a été, cela me semble bien compliqué toutes ces sous-procedures ! Et l'objectif, pas très clair. Le fichier log semble être un bonne solution
    On consulte cette table après le lancement de la procédure P1. Cela s'avère fastidieux quand il y a beaucoup de sous-procédures et d'arguments.
    Si ces étapes s'avèrent fastidieuses c'est qu'il y a peut-être un problème dans la table de log (niveau structure)
    une table Temporaire est-elle envisageable ?
    La/Les procédures ne pourraient/renvoient-elles des résultats ?
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    février 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : février 2009
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Merci pour cette réponse ultra-rapide !

    Citation Envoyé par SergioMaster Voir le message
    J'avoue être un peu dans le flou.
    Dans la situation actuelle, on se retrouve des fois avec plus de 8 procédures imbriquées (sur une base comptant plusieurs centaines de procédures).
    Il arrive qu'on a un résultat non désiré dans la procédure de premier niveau, nous devons donc aller "chercher" dans chaque procédure pour identifier le problème. Cette recherche serait simplifiée si on avait un moyen simple de connaître chaque appel de chaque procédure afin de les lancer indépendamment.

    Pour des analyses de performances, il nous serait aussi utile d'avoir le temps d'exécution de chaque sous-procédure. Suite à mes tests avec FB TraceManager, on a le temps d'exécution (et les arguments) de la procédure principale, mais pas les sous-procédures.

    J'aimerais éviter de passer dans toutes nos procédures pour ajouter manuellement du code qui écrit chaque argument dans un log (tables, tables temporaires, ...).

    L'idéal serait de lancer la première procédure, d'attendre le résultat, et ensuite d'avoir le détails de fonctionnement .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Procédure P1(1,2,3,4) : 500 ms
    	Procédure P2(5,6,7,8) : 300 ms
    		Procédure P3(4,5,6) : 300 ms
    	Procédure P4(1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8) : 200 ms
    Citation Envoyé par SergioMaster Voir le message
    La seconde, a été, cela me semble bien compliqué toutes ces sous-procédures
    Cela a été fait ainsi

Discussions similaires

  1. [AC-2003] Obtenir les détails des jours d une période
    Par taz devil dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 06/01/2017, 16h14
  2. [ImageMagick] Obtenir les dimensions d'une image externe?
    Par Death83 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 31/01/2006, 10h57
  3. Réponses: 1
    Dernier message: 20/12/2005, 16h56
  4. 2 Requetes en une seule procédure stockée
    Par jeff37 dans le forum Oracle
    Réponses: 3
    Dernier message: 14/11/2005, 16h43
  5. Réponses: 5
    Dernier message: 19/07/2005, 22h54

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