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 Firebird Discussion :

Too many Contexts of Relation/Procedure/Views


Sujet :

SQL Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Par défaut Too many Contexts of Relation/Procedure/Views
    Bonjour à tous et à toutes,

    Voilà que subitement j'obtiens le message ci-dessous lorsque je recompile une SP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Undefined name.
    Too many Contexts of Relation/Procedure/Views. Maximum allowed is 255.
    Error while parsing procedure SP_TRANSFORM_PIECE's BLR.
    J'ai vu quelque part que FB ne pouvait faire que 255 changements des tables et vues et qu'il fallait faire un backup/restore pour remettre à zéro le compteur des révisions mais ça n'a pas fonctionner
    J'ai même tenter un gfix -sweep....toujours pas.

    Si quelqu'un à une idée ?

    Merci.

  2. #2
    Membre très actif Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Par défaut
    Ta PS doit être particulièrement complexe (un plat de spaghetti quoi !) pour lever cette erreur rare, en fait c'est le nombre de tables, PS selectionnables, vues... utilisés dans cette PS qui dépasse les 255.
    La solution est de simplifier ta PS au max.

  3. #3
    Membre éprouvé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Par défaut
    Citation Envoyé par TryExceptEnd Voir le message
    Ta PS doit être particulièrement complexe (un plat de spaghetti quoi !)
    Exactement c'est un plat de spaghetti, c'est bien dit.
    c'est la PS la plus complexe dans le projet et la plus fondamentale disons que c'est le pillier dans la BDD. Pour la construire, j'avais à porter de la main de la paracétamol

    En effet, j'ai dû réduire le nombre de tables et de vues , juste pour voir, et ça a merveilleusement fonctionner. Maintenant je vais réserver une bonne journée pour réviser et optimiser cette PS

    Merci TryExceptEnd

  4. #4
    Membre très actif Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Par défaut
    Si ta PS est un plat de spaghetti, la modélisation de ta base doit être du même tonneau. Car il y a aucune raison pour qu'une PS (SP_TRANSFORM_PIECE) qui transforme une pièce commerciale en une autre soit aussi compliquée que ça.

  5. #5
    Membre éprouvé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Par défaut
    Bonjour,

    Citation Envoyé par TryExceptEnd Voir le message
    la modélisation de ta base doit être du même tonneau.
    Non, je ne pense pas, la BDD est bien modélisée avec des tables maitres et des tables de détails. Il s'agit de transformer dix types de pièces commerciales (achat et vente)
    Vente : devis=>commande=>livraison=>facture=>avoir
    achat : devis=>commande=>livraison=>facture=>avoir (je n'ai pas encore introduis l'ordre d'achat....) et d'autres pièces de stocks.

    Une table type de pièces contient toutes les pièces disponibles avec leurs identifiants gérer par le programme.

    Une autre table (Pièce) dans laquelle sont stockés les pièces générer avec les informations de quelle pièce la pièce courante a été générer et quelle pièce sera générer depuis la pièce courante. Ca permet d'enchainer les pièces les unes d'avec les autres. La transformation consiste de copier par exemple, les tables devis et devis_ligne dans commande et commande_ligne.

    Il n' y a pas d'écrans avec les grilles devis, commande, facture etc... distinctement. C'est est un plat de spaghetti qui 'est afficher à leur places c'est à dire toutes les pièces dans une seule grille. Sans compter le module des stocks (PUMP,LOT,FIFO,SERIALISER) ainsi que la gestion des emplacements, du type d'emplacement et leurs entités.

    Le projet est un tonneau pour cela je pense que oui. Enfin tel que je le vois.

    la PS en question a été construite rapidement, disons sans réflexion du fait qu'il reste beaucoup de chose à réalisé, peut-être bien qu'en la revoyant elle sera simplifié.
    Voilà TryExceptEnd

  6. #6
    Membre Expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 052
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 052
    Par défaut
    Bonjour,

    Je ne connaissais pas cette limitation, du coup je me suis "amusé" à regarder combien j'avais de dépendance directe par procédure sur mon plus gros projet.
    Je suppose que la contrainte ne tiens compte que les dépendances directes ? C'est a dire une PS1 qui appel une autre PS2 compte pour 1 dépendance (même si PS2 appel 10 tables).
    Je ne suis pas certain à 100% que la requête suivante soit juste, (je ne l'ai vérifiée que pour une PS).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    with CTE (NOM_PS, NbrDependance) as (
    select D.RDB$DEPENDENT_NAME, count(distinct D.RDB$DEPENDED_ON_NAME) nbrDependance
    from RDB$DEPENDENCIES D
    where d.rdb$dependent_type=5
    group by D.RDB$DEPENDENT_NAME )
    Select count(c.NOM_PS) as "Nombre PS", AVG(NbrDependance) as "Moy dependance par PS", Max(NbrDependance) as "Nbr max dependance pour une PS" from cte c
    Elle me renvoie que j'ai 300 PS, avec en moyenne 5 dépendances par PS et le maximum de dépendance d'une de mes PS est de 43 (donc je suis encore loin des 255).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. pb pour créer des index [too many keys]
    Par Issam dans le forum Débuter
    Réponses: 3
    Dernier message: 19/01/2005, 20h58
  2. Réponses: 4
    Dernier message: 29/09/2004, 09h05
  3. Too Many versions & Backup-Restore à rallonge
    Par Harry dans le forum Administration
    Réponses: 14
    Dernier message: 30/06/2004, 18h10
  4. [DDL] Too many versions
    Par TMuet dans le forum Débuter
    Réponses: 4
    Dernier message: 13/01/2004, 09h23
  5. Pgsql : erreur de connexion 'too many clients ...'
    Par petitmoosse dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 21/08/2003, 14h03

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