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 :

Délais d'attente expiré (problème de POOL ?)


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
    Mars 2005
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 52
    Par défaut Délais d'attente expiré (problème de POOL ?)
    Bonjour,

    J'ai une appication en VB avec plusieurs select et insert imbriqués qui permettent de dupliquer plusieurs fiches :

    select
    do while
    select
    do while
    insert
    end
    end


    Du coup j'ai plusieurs connections SQL en attente. Mon programme marche bien, sauf que lorsque je dépasse un certains nombre fiche, ça ne marche plus.

    Par exemple si mon programme sélectionne 50 fiches, il les copies bien. Par contre si j'en ai 200, ça bloque dés la première.

    J'ai un message d'erreur indiquant que le délais d'attente est expiré, mais j'ai plutôt l'impression que c'est un problème de spool.

    Par exemple si mon programme sélectionne 200 fiches et s'apprète à le copier (insert) rien ne se passe (avant le message d'erreur de délais d'attente terminé). Mais j'ai le temps de lancer un requête en ligne de commande dans sql server 2005 explress. Et la ma requête reste en attente (le cercle vert du traitement en cours ne s'arrête jamais). Si je quitte mon application VB, ça libère de la charge (ou du pool ?) et ma requête dans sql server fonctionne.

    Ca fait plusieurs jours que je recherche de la documentation dessus, mais je ne trouve pas de solution. J'ai essayé de gérer le nombre de pool dans ma connection SQL sous vb (Pooling=True ; Max Pool Size=400 ; Max Pool Size=500 voir même Pooling = false) mais rien à faire.

    Quelqu'un aurait-il déjà eu ce problème ? Est-ce bien un problème de pool ? (je pense que oui) et n'y a t-il pas moyen de l'augmenter dans sql serveur ?

    Merci d'avance, j'espère que quelqu'un pourra me donner un coup de main, car toutes mes tentatives on été infractueuse et je me demande même si ça ne serait pas SQL 2005 express qui serait limitée ?

  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
    Les fiches cela n'existe pas en SQL.... Nous ne savons pas de quoi vous parlez. SQL manipule des tables et n'a pas de relation direct avec des concepts de fiches, état imprimé ou autre objet visuel.

    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
    Mars 2005
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 52
    Par défaut
    Bonjour,

    Merci de votre réponse.

    Désolé, je me suis mal exprimé en parlant de "Fiche". Une fiche correspond en fait à une requête SQL de type "Insert". Je n'ai pas été très clair dans mon explication, je vais essayer de vous la reformuler plus simplement.

    Dans mon programme VB j'ai une fonction récursive qui interroge ma base SQL avec des requêtes de type "SELECT". A chaque fois que j'ai une "SELECT" j'ai ensuite un "INSERT". Mais vu que c'est récursif, je laisse beaucoup de requête SQL ouverte (mais je les referme bien à la fin de mon programme). Le problème c'est que si j'en ai trop d'ouverte le serveur SQL me bloque et j'ai plus le droit d'en executer tant que mon programme VB n'est pas fermé (ce qui libère de nouveau l'accès). C'est pour cela que le problème doit venir des "POOL" limités sous SQL server (un peu comme si un serveur d'impression était limité à 100 impression dans la file d'attente, et que mois je lui en demandait 101, ça bloque).

    Mais je ne voit pas comment identifier mes "POOL" dans l'administration de SQL 2005 express, et encore moins modifier ces paramètre (acepter par exemple 150 POOL).

    Merci d'avance, j'espère avoir été plus clair.

  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
    SQL est fait pour faire du code ensembliste. Il n'est pas fait pour faire du ligne à ligne, qui plus est dans un outil lent d'un langage abscon (pour ne pas dire M..) et qui plus est par un traitement récursif !
    N'oubliez pas que BASIC est l'acronyme de Beginner All Purpose Symbolic Instruction Code que l'on pourrait traduire par langage pour débutant boutonneux en informatique ;-) et a été créé en 1964, soit 6 ans après Cobol...

    Entre nous, pensez vous que votre façon de développer une application bases de données relationnelle soit adaptée ? Aujourd'hui faire une requête massivement récursive (hé oui, ça existe) sur plusieurs centaines de ligne se fait en moins d'une secondes sur un serveur base de gamme !

    Lisez l'article que j'ai écrit à ce sujet :
    http://sqlpro.developpez.com/cours/s...te-recursives/

    En utilisant les bases de données à contre emploi, n'espérez pas obtenir de bons services !!!

    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/ * * * * *

  5. #5
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 52
    Par défaut
    Merci pour ta réponse SQLpro... je ramasses mes dents et je vais essayer de modifier mon code. Mais je n'ai pas saisie le contenu de ton article au sujet de la récursivité (j'ai déjà eu du mal à faire de la récursivité dans mon code)
    ;-)

    Je n'ai pas encore assez d'expérience en VB et SQL car il s'agit de mon premier programme, et je vois que le chemin est long pour optimiser tout ça.

    Mon programme est un gestionnaire de produits qui fonctionne comme un explorateur. Mes produits sont classés dans des dossiers et des sous-dossiers sur 7 niveaux maximum. Lorsque je veux dupliquer un dossier avec tous les sous-dossiers enfants j'ai voulu faire ça proprement avec une fonction récursive, mais je ne pensais pas qu'au bout du compte s'était pas compatible avec l'utilisation de SQL Server.

    La problématique est qu'à chaques fois que j'enregistre un élément parent il faut que je copie aussi sont élément enfant (récursivement jusqu'au 7ème niveau) et je n'ai pas assez de connaissance pour rassembler tout ça dans une seul requête SQL. Est-ce possible (car à chaque fois que j'enregistre un élément enfant, j'ai besoin de l'ID de son parent pour faire le lien entre l'enfant et le parent)

    Je vais chercher dans cette direction, car si je pouvait le faire en une seule requête SQL ça serait la solution.

    Mais aillant du mal à comprendre ton article sur la récursivité (rassurez-moi, c'est un niveau expert ça !) je sents que les nuits vont être courtes.
    ;-)

    En tout cas merci pour toutes ces infos.

  6. #6
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Citation Envoyé par le_binr Voir le message
    j'ai voulu faire ça proprement avec une fonction récursive, mais je ne pensais pas qu'au bout du compte s'était pas compatible avec l'utilisation de SQL Server.
    Faux, SQL Serveur n'a pas du mal à faire de la récursivité !
    C'est élégant mais c'est complexe pour un débutant.
    Pouvez vous postez :
    1-le shemas de votre DB,
    2-Votre code VB pour qu'on nous puissions essayer de vous aider ?

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

Discussions similaires

  1. Délai d'attente expiré
    Par GodGives dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 15/11/2007, 10h19
  2. Délai d'attente expiré !
    Par Le Pharaon dans le forum MS SQL Server
    Réponses: 15
    Dernier message: 22/05/2006, 19h25
  3. "Délai d'attente expiré" aléatoire
    Par denilson74 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/07/2005, 10h48
  4. Délai d'attente expiré
    Par zut94 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 06/07/2005, 21h50
  5. Délai d'attente expiré
    Par amiral thrawn dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/04/2003, 12h04

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