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

Développement SQL Server Discussion :

Erreur Espace de pile sur un delete


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 30
    Par défaut Erreur Espace de pile sur un delete
    Bonjour,

    J'ai une table utilisateurs qui est référencé par des foreign_key sur l'ensemble des tables de la base de données pour pouvoir connaître l'utilisateur ayant crée l'enregistrement, ainsi que celui l'ayant modifié la dernière fois.

    Résultat : la table utilisateur est référencé dans 336 FOREIGN_KEY.

    Maintenant quand je veux faire un DELETE d'un utilisateur, SQL Server me renvoie le message d'erreur suivant :

    Espace de pile du processeur de requêtes insuffisant lors de l'optimisation de la requête. Simplifiez la requête.

    En supprimant une trentaine de foreign_key, je n'ai plus ce message.

    Est-on limité dans le nombre de FOREIGN_KEY référençant une table (Précision je suis sur SQLSERVER 2008 EXPRESS) ?

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut
    256 !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 30
    Par défaut
    Merci de votre réponse.

    La limitation concerne-t-elle uniquement la version Express car celà semble fonctionner sur une version entreprise ?

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut
    253 exactement et non 256...

    le problème est que les contraintes sont utilisées par l'optimiseur de SQL Server pour créer un plan de requête optimal. Avoir 253 FK nécessite donc de parcourir 253 tables pour créer un plan de requête idéal... ce qui coute du temps. C'est pourquoi il existe cette limitation.

    Dans un tels cas, votre FK ne relevant pas du fonctionnel, mais de l'admin (pister des USER) il vaudrait mieux ne pas faire de DRI, mais :
    • soit gérer cela par des déclencheurs
    • soit ne pas mettre de contrainte ni déclencheur


    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Erreur aléatoire sur File.delete
    Par davelop dans le forum ASP.NET
    Réponses: 5
    Dernier message: 11/12/2009, 17h07
  2. Erreur sur un DELETE basique
    Par shkyo dans le forum Requêtes
    Réponses: 9
    Dernier message: 04/03/2009, 16h09
  3. MsFlexgrid - ESpace de pile insuffisant (erreur 28)
    Par GodGives dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 17/10/2007, 13h18
  4. [SQL] Erreur sur un Delete en sql via php
    Par speed034 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/05/2007, 16h18
  5. [MySQL] Erreurs de syntaxe sur requêtes DELETE
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/03/2006, 15h53

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