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

MS SQL Server Discussion :

Jointures inutiles dans une Vue SQL


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2008
    Messages : 16
    Points : 24
    Points
    24
    Par défaut Jointures inutiles dans une Vue SQL
    Bonjour à tous,

    Je suis en pleine session perfs pour mon taf et j'ai quelques soucis dont un auquel je ne trouve pas la réponse.
    Je vous explique :
    J'ai une vue SQL avec beaucoup de jointures et ma vue utilise pas mal de fonctions qui ont aussi beaucoup de jointures.
    Je travaille dessus en ce moment pour l'améliorer et je voudrais savoir quelles sont les jointures qui sont inutiles.

    Avez-vous une idée ?

    Je ne voudrais pas commenter les jointures les unes après les autres pour savoir si elle sort en erreur ou non.
    Et mon DBA a séché....

    Merci d'avance.
    LaMeule

  2. #2
    Invité
    Invité(e)
    Par défaut
    Sans le code, je peux brûler un cierge à l'oratoire Saint Joseph pour t'aider, mais le résultat n'est pas garanti.

  3. #3
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Décembre 2007
    Messages : 327
    Points : 674
    Points
    674
    Par défaut
    Pour voir les jointures inutiles 2 solutions :

    Lecture du code :

    • Est ce qu'il y a des colonnes ou des critères de recherches qui ne sont pas utilisés ?
    • Est ce que la jointure apporte un besoin fonctionnel ?
    • Quels sont les tables qui ne sont pas utilisé dans le plan d'execution ?


    Après moi je peux aller pisser sur totem, en plus du cierge brulé, mais sans le code on ne pourra effectivement pas faire grand chose de plus

  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
    21 911
    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 : 21 911
    Points : 51 666
    Points
    51 666
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par LaMeule Voir le message
    Bonjour à tous,

    Je suis en pleine session perfs pour mon taf et j'ai quelques soucis dont un auquel je ne trouve pas la réponse.
    Je vous explique :
    J'ai une vue SQL avec beaucoup de jointures et ma vue utilise pas mal de fonctions qui ont aussi beaucoup de jointures.
    Je travaille dessus en ce moment pour l'améliorer et je voudrais savoir quelles sont les jointures qui sont inutiles.

    Avez-vous une idée ?

    Je ne voudrais pas commenter les jointures les unes après les autres pour savoir si elle sort en erreur ou non.
    Et mon DBA a séché....

    Merci d'avance.
    LaMeule
    De toutes façons si ces jointures sont inutiles pour une requête donnée, SQL Server les ignorera à l'exécution du fait de l'optimiseur.....

    Il faut simplement avoir prévu les contraintes d'intégrité référentielles !

    Pour plus d'explication voir la session des "journées SQL Server" de 2011 consacrées aux contraintes et performances :



    A +

  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 : 42
    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
    Points : 3 173
    Points
    3 173
    Par défaut
    de fonctions qui ont aussi beaucoup de jointures.
    Quand je lis ca, vos inquiétude sur les jointures me font doucement rigoler... comme le dis SQLPRO si ces jointures sont inutiles du fait de la présence des contraintes d'intégrité (PK,FK, U,C ETC.) le moteur les ignorera...

    En revanche l'utilisation de fonction scalaires est souvent la cause de problèmes de performances.
    Cordialement

Discussions similaires

  1. Affichage conditionnel dans une vue SQL
    Par adn56 dans le forum SQLite
    Réponses: 31
    Dernier message: 09/10/2015, 19h53
  2. If multiple dans une vue SQL
    Par michaeljeru dans le forum MySQL
    Réponses: 1
    Dernier message: 27/07/2009, 16h32
  3. requête imbriquée dans une vue SQL
    Par captainamerica75 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/05/2007, 14h39
  4. [SQL Server 2000] ajouter une colonne identité dans une vue?
    Par CetTer dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/08/2005, 13h43
  5. Paramètres possibles dans une vue ms sql server
    Par lutin2003 dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 30/03/2005, 19h03

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