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 :

pertinence vue sur vue


Sujet :

MS SQL Server

  1. #1
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut pertinence vue sur vue
    Bonjour

    J'utilise une vue complexe qui dans 90% des cas doit etre filtrée sur un champ NULL (WHERE champ is NULL)

    Mais dans 10% je dois filtrer sur autre chose

    Je pense donc a definir une premiere vue (Sans Filtre)
    Et une autre vue qui ferais un simple select sur la premiere mais avec le Filtre

    WHERE Champ IS NULL

    Est-ce pertinent

  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
    21 980
    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 980
    Billets dans le blog
    6
    Par défaut
    Pas forcément, l'optimiseur sait simplifier l'écriture finale de la requête....
    La seule légitimité de faire de nombreuses vues, y compris des vues de vues est simplement fonctionnelle !

    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 expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    La seule légitimité de faire de nombreuses vues, y compris des vues de vues est simplement fonctionnelle !
    Merci SqlPro
    C'est effectivement le but ici
    - plusieurs application utilisent cette vue en mode filtré (WHERE CHAMP IS NULL)
    - Mais certaines doivent avoir une visibilité complete

    Donc pour ne pas ecrire entierement les deux vues l'idée est de faire la vue principale sans filtre et d'appliquer sur cette premiere vue une vue avec filtre

    Mais comme cette vue sur vue sera la plus utilisée je me demandans si je n'allais pas de cette maniere allourdir les performances

    L'alternative moins agréable a gerer c'est evidemment de creer deux vues identique avec et sans filtre ?

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Si vous êtes sous SQL Server 2008, et que le nombre de lignes pour lesquelles la colonne est à NULL est faible par rapport au nombre total de lignes de la table, pensez aux index filtrés

    @++

  5. #5
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Bonjour Elsuket

    Non c'est l'inverse ! J'ai 95% de NULL sur +/- 100.000 records (mais la vue qui produt ces lignes n'est pas triviale)

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Par défaut
    Comme le laissait entendre SQL Pro, vous ne souffrirez pas de perte de performance à employer une vue dans une autre vue.

    Faite donc votre vue complète et faite une vue limité employant la précédente.
    Votre code sera plus facile à lire et maintenir.

  7. #7
    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
    Comme le laissait entendre SQL Pro, vous ne souffrirez pas de perte de performance à employer une vue dans une autre vue.

    A ne pas exagérer tout de même....

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Par défaut
    Citation Envoyé par iberserk Voir le message
    A ne pas exagérer tout de même....
    Heu... la création du plan d'exécution prendra 0.02% de temps en plus pour atteindre une durée de 1 milliardième du temps d'exécution total ?
    On peut aussi conseiller de ne pas bouger le curseur de la souris pendant l'excécution.

  9. #9
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci a tous

  10. #10
    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
    Heu... la création du plan d'exécution prendra 0.02% de temps en plus pour atteindre une durée de 1 milliardième du temps d'exécution total ?

    On attends tes mesures avec impatience

  11. #11
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Par défaut
    Citation Envoyé par iberserk Voir le message
    On attends tes mesures avec impatience
    Contredis moi quand j'exprime que la "perte" de performance ne serait autre que triviale. Car elle l'est, à ma connaissance.
    Je préfère apprendre : éclaire nous.

  12. #12
    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
    On attends tes mesures avec impatience
    Je te charriais...

    Contredis moi quand j'exprime que la "perte" de performance ne serait autre que triviale. Car elle l'est, à ma connaissance.
    Evidemment elle sera triviale mais c'est vrai pour beaucoups de chose en exploitation de base de données...

  13. #13
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Sur 2005, la limite d'imbrication est de 32 :
    Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32).

  14. #14
    Invité
    Invité(e)
    Par défaut
    Pour avoir du travailler sur des vues imbriquées, je conseillerais d'y aller mollo moderato sur les niveaux d'imbrication.
    Quand tu passes une demi-heure pour comprendre que ce que fait la vue de niveau 10 est un select sur la vue initiale avec 3 champs de moins et une clause WHERE en prime, tu as VRAIMENT l'impression de perdre ton temps...

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 31/10/2005, 17h32
  2. probleme de vue sur sous formulaire
    Par fabrice518 dans le forum Access
    Réponses: 12
    Dernier message: 05/09/2005, 11h35
  3. Problème de terme sur "vue"
    Par AlexB59 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 08/06/2005, 12h27
  4. Réponses: 7
    Dernier message: 21/02/2005, 14h28
  5. Pb Trigger sur vue
    Par cosminutza dans le forum Développement
    Réponses: 3
    Dernier message: 28/07/2003, 17h37

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