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

C# Discussion :

Problème de connection à SQL Server


Sujet :

C#

  1. #1
    Membre habitué Avatar de thelpi
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 217
    Points : 156
    Points
    156
    Par défaut Problème de connection à SQL Server
    bonjour à tous,

    je travaille sur une application c# liée à 2 bases SQL server, installée sur un ordinateur distant (enfin pour le moment sur un windows 2000 installé avec virtual PC sur la même machine, le poste client étant sous vista)

    la connection s'effectue très bien, mais une de mes requètes renvoie le message "Expiration du délai d'attente. Le délai d'attente s'est écoulé avant la fin de l'opération ou le serveur ne répond pas." lors de la création d'un SQLDataReader à partir d'une SQLCommand.

    la requète est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select id_bon, ref_bon, etat_bon, date_bon from base1.bons where datediff(month, date_bon, getdate())<2 and not exists (select id_bon from base2.bons where base1.id_bon=base2.id_bon);
    Elle me ramène tout les bons existants dans la base1 et pas dans la 2 et datant de moins de 2 mois.

    En essayant d'isoler certaines parties de ma requète, j'ai l'impression que le problème vient de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datediff(month, date_bon, getdate())<2
    sans cette partie, le datareader se crée sans problème

    précision : quand j'exécute la requète complète directement sous Sql Server, elle met beaucoup de temps à répondre (la table bons de la base1 contient 700000 lignes et pour le moment aucune dans la base2)

    merci de votre aide

  2. #2
    Expert éminent
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Points : 6 775
    Points
    6 775
    Billets dans le blog
    4
    Par défaut
    Salut,

    Juste une ou deux petites questions.
    - Ta table bons de la base1 est elle indexée?
    - Tu exécute directement depuis ton code c# ta requête ou bien tu passes par une Procédure stockée?

    - en ce qui concerne datediff, j'ai pas d'idée particulière sur le problème, il te manque peut-être un paramètre, je regarde ça et je te tiens au courrant.

    edit : je viens de voir que tu avais mis month dans ta datediff
    essaye de l'ecrire comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    datediff("m", date_bon, getdate())
    Cordialement,
    Lyche
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

  3. #3
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut
    Quelques idées :
    - créer une procédure stockée,
    - créer une vue,
    - créer des indexs
    - tester si ce n'est pas plus rapide avec un left join
    - augmenter le délai du timeout (je ne sais pas si c'est possible)
    Pas de messages privés sur des questions techniques ! Je suis trop nul pour vous aider

  4. #4
    Membre habitué Avatar de thelpi
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 217
    Points : 156
    Points
    156
    Par défaut
    j'ai remplacé month par m, mais ça ne change rien

    je n'utilise aucune procédure stockée, j'exécute directement.
    la table bons est bien indexé sur le champ id_bon (dans les 2 bases)

    merci de ton aide

  5. #5
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut
    Citation Envoyé par thelpi Voir le message
    j'ai remplacé month par m, mais ça ne change rien

    je n'utilise aucune procédure stockée, j'exécute directement.
    la table bons est bien indexé sur le champ id_bon (dans les 2 bases)

    merci de ton aide
    Fais un index sur id_bon + date_bon
    Pas de messages privés sur des questions techniques ! Je suis trop nul pour vous aider

  6. #6
    Membre habitué Avatar de thelpi
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 217
    Points : 156
    Points
    156
    Par défaut
    je ne peux pas du tout toucher à la base, elle est issue de la gestion commerciale d'un client de la boite pr laquelle je travaille.

    je crois que sql server convertit tout seul les jointures dans les WHERE en JOIN, en tout cas quand je tape le texte de ma requète sous SQL server c'est le cas.

    je vais tenter le changement de timeout.

    merci

  7. #7
    Membre habitué Avatar de thelpi
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 217
    Points : 156
    Points
    156
    Par défaut
    en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cmd.CommandTimeout = 1000000000;
    c'est passé (avec pas mal d'attente). je ne met pas résolu car je trouve ça étrangement lent quand même :s

    Quelqu'un connait la valeur par défaut du timeout?

  8. #8
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Non, mais la MSDN le sait : http://msdn.microsoft.com/en-us/libr...ndtimeout.aspx

    30 sec
    ಠ_ಠ

  9. #9
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut
    Citation Envoyé par thelpi Voir le message
    en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cmd.CommandTimeout = 1000000000;
    c'est passé (avec pas mal d'attente). je ne met pas résolu car je trouve ça étrangement lent quand même :s

    Quelqu'un connait la valeur par défaut du timeout?
    si tu ne peux pas toucher à la base, tu peux mettre en résolu, parcqu'il n'y a rien d'autre à faire.... Peut etre en rajoutant de la ram ou une carte réseau plus rapide
    Pas de messages privés sur des questions techniques ! Je suis trop nul pour vous aider

  10. #10
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Points : 706
    Points
    706
    Par défaut
    Si utiliser une ProgressBar pour faire patienter l'utilisateur

  11. #11
    Membre habitué Avatar de thelpi
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 217
    Points : 156
    Points
    156
    Par défaut
    Citation Envoyé par flogreg Voir le message
    si tu ne peux pas toucher à la base, tu peux mettre en résolu, parcqu'il n'y a rien d'autre à faire.... Peut etre en rajoutant de la ram ou une carte réseau plus rapide
    Oui, le problème vient peut ètre de la, Virtual PC n'utilise que 256mo de ram et un processeur Pentium III

    je vais laisser comme ça pr le moment, merci à tous

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

Discussions similaires

  1. problème de connection à SQL server 2000 depuis Excel
    Par tribaleur dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/09/2008, 12h08
  2. Problème de connection à SQL Server
    Par LJL51 dans le forum Accès aux données
    Réponses: 3
    Dernier message: 29/07/2008, 14h04
  3. problème connection sql server avec vb
    Par tickerdu22 dans le forum Développement
    Réponses: 1
    Dernier message: 17/05/2008, 22h58
  4. Problème de connection à SQL Server
    Par wsangli dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 12/08/2005, 17h19
  5. Réponses: 3
    Dernier message: 18/11/2002, 16h36

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