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

Administration SQL Server Discussion :

Parallelism dans les requêtes


Sujet :

Administration 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
    34
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 34
    Par défaut Parallelism dans les requêtes
    Bonjour,

    Je suis entrain de développer une application et dedans je dois exécuter des requêtes SQL.

    Je regarde le plan d'exécution de ma requête SQL et je vois qu'elle fait du parallelism/repartitions streams et du parallelism/gather streams.

    Je sais que dans certaines compagnie où je travaillais avant leur BD Oracle il ne voulait rien avoir comme requête qui exécute du parrallèle pour eux c'était le diable.

    Je veux savoir si c'est mal que nos requêtes fassent du parallèle ? Si oui pourquoi si non pourquoi question que je n'ai seulement pas une réponse bête .

    Est-ce que sur le site il y a un document qui explique également les meilleures pratiques lorsqu'on lit nos plan d'exécution de nos requêtes ?

    Merci

  2. #2
    Membre Expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Par défaut
    Bonjour,

    Je ne pense pas qu'il y aie une réponse tip-top à ta question de savoir si c'est bien ou mal.

    Tu peux forcer l'inutilisation du parallelisme avec l'option maxdop 1.

    Ensuite, reste à voir si s'est plus performant ou pas, celon tes besoins.

  3. #3
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 34
    Par défaut
    D'accord merci de la réponse mais je voudrais comprendre de façon plus spécifique les requêtes qui font du parrallèle.

    Comme dans ceux que j'ai créé, le temps d'exécution est super bon environ 1 seconde donc si je résonne rapide (chose que je n'aime point) je me dis wow génial le temps d'exécution est merveilleux.

    Mais par expérience je sais très bien que ce n'est pas la bonne façon de penser car plus le volume de mes tables vont augmenter ceci peut jouer sur la performance à long terme.

    Donc est-ce mieux en temps normal d'éviter les requêtes qui vont du parrallère et forcer comme mentionné plus haut qu'il ne passe pas par ses chemins ?

    Merci

  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
    Un SGBDR est spécialement conçu pour trouver le moyen de résoudre au plus vite votre requête. Pour cela il dispose d'un optimiseur qui calcule différentes solutions et cherche la meilleure en fonction des statistiques dont il dispose.
    Si dans le plan de requête qu'il aura choisit d'exécuter, certains branches peuvent être parallélisées (accès aux données par exemple) alors il aura naturellement tendance à le faire afin de gagner du temps.
    Maintenant vous pouvez lui interdire de paralléliser. La conséquence sera double :
    1) certaines requêtes vont mettre plus de temps
    2) la durée du verrouillage étant allongée, la contention sera plus grande et donc, globalement les temps de réponse seront moins bon...

    Autrement dit, empêcher le parallélisme peut s'avérer une très mauvaise chose.

    Si l'on décide de le faire, alors il vaut mieux dans ce cas que la requête fasse de la lecture sale, cela évitera la pose de verrous de lecture ce qui conduira à ne pas gêner les autres utilisateurs concurrents, mais peut entraîner des résultats faux....

    Bref, ceux qui vous on dit que le parallélisme c'était le diable n'ont rien compris au fonctionnement des SGBDR !

    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
    34
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 34
    Par défaut
    Merci pour la réponse je me doutais bien que la personne qui m'a dit ça se pensait "hot" sans vraiment l'être.

    Bref en plus j'ai une réponse d'un MVP Microsoft que demander de mieux je ferme donc mon message merci

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

Discussions similaires

  1. Lag dans les requêtes des répliques mais pas du maître
    Par Thomas JOUANNOT dans le forum Access
    Réponses: 3
    Dernier message: 16/03/2006, 10h17
  2. [MySQL] Utilisation du caractère "`" dans les requêtes
    Par PeZ dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/03/2006, 17h01
  3. Simuler l'opérateur "*" dans les requêtes
    Par soso78 dans le forum Access
    Réponses: 3
    Dernier message: 29/11/2005, 11h42
  4. Majuscules - minuscules dans les requêtes
    Par calogerogigante dans le forum Requêtes
    Réponses: 11
    Dernier message: 25/10/2005, 12h36
  5. Accents non pris en compte dans les requêtes SELECT
    Par YanK dans le forum Requêtes
    Réponses: 1
    Dernier message: 30/08/2005, 11h57

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