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 :

Grosses requêtes depuis un programme c# / MultiThread


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 202
    Par défaut Grosses requêtes depuis un programme c# / MultiThread
    Bonjour,

    J'ai un programme qui doit executer des grosses requêtes d'extraction (indépendantes) sur une base SQL Server.

    Pour gagner en perf, j'ai eu la (mauvaise ?) idée de découper le travail en plusieurs threads qui se chargent chacun d'une requête.
    Le CPU est un 4 coeur. J'ai donc créé 4 threads maxi.

    Mes questions sont les suivantes:

    - Est ce une bonne approche ?
    - Y a t il une optimisation à apporter également dans SQL-Server pour tirer profit des architectures multi-coeur ?
    - J'ai parfois cette erreur: 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. Je pense que la requête est trop longue et qu'au bout d'un moment, sql server jette l'éponge. Existe t il un moyen d'augmenter la valeur de timeout ?

    Merci d'avance

  2. #2
    Membre Expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Par défaut
    commandtimeout sur la commande si vous êtes en ADO...

    qu'utilisez vous pour attaquer votre bdd?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 202
    Par défaut
    Merci mais j'utilise SqlConnection et SqlCommand.

  4. #4
    Membre éclairé
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Par défaut
    Attention si tu fais du multri-thread, tu vas exécuter tes quatre requêtes en même temps, ce qui est ton but, cela ne pose pas de problème à SQL serveur d'exécuter plusieurs requêtes (heureusement). Par contre si tu as des expirations du délais d'attente c'est que tes requêtes doivent exploiter les mêmes données et que ses données doivent être verrouillées par une autre requête. Pour pouvoir t'aider d'avantage, il nous faut la structure de la base et les requêtes que tu veux exécuter.


    A plus

  5. #5
    Membre Expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Par défaut
    sqlconnection, sqlcommand=ADO.NET :-)

    SqlCommand.CommandTimeOut....

    Donnez nous plus détails sur les requète, que font'elle, qu'entendez vous par extraction??

    comme le dis jm au cube :-) attention à ce que tes requêtes ne ciblent pas les même données...

  6. #6
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Citation Envoyé par iberserk Voir le message
    sqlconnection, sqlcommand=ADO.NET :-)
    comme le dis jm au cube :-) attention à ce que tes requêtes ne ciblent pas les même données...
    hmmmm
    Je suis pas complètement d'accord avec ça...
    visiblement, il s'agit de requête SELECT...
    Si deux requêtes ont besoin des même données, une seule lecture sera effectuée, et les données seront "envoyées" aux deux requêtes, ça peut donc être un gain de perfs ...

    Pour ce qui est des timeouts, il y a aussi peut être moyen d'optimiser les requêtes !
    Quels temps de réponse observes-tu pour les requêtes lancée depuis SSMS par exemple ?

Discussions similaires

  1. Réponses: 5
    Dernier message: 20/02/2006, 14h11
  2. Problème sur la commande COPY depuis un programme Java
    Par klereth dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 10/02/2006, 14h14
  3. Réponses: 4
    Dernier message: 15/11/2005, 12h19
  4. Réponses: 8
    Dernier message: 14/01/2005, 09h06
  5. Réponses: 14
    Dernier message: 17/03/2003, 18h31

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