Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/05/2011, 15h23   #1
Membre Expert
 
Inscription : octobre 2007
Messages : 3 947
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 947
Points : 1 905
Points : 1 905
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
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 16h11   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 953
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 953
Points : 17 773
Points : 17 773
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
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 16h25   #3
Membre Expert
 
Inscription : octobre 2007
Messages : 3 947
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 947
Points : 1 905
Points : 1 905
Citation:
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 ?
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 17h03   #4
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

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

Informations forums :
Inscription : janvier 2005
Messages : 4 669
Points : 8 729
Points : 8 729
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

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 19h57   #5
Membre Expert
 
Inscription : octobre 2007
Messages : 3 947
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 947
Points : 1 905
Points : 1 905
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)
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 10h20   #6
Membre chevronné
 
Inscription : juillet 2006
Messages : 1 194
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 1 194
Points : 746
Points : 746
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.
Sergejack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 14h21   #7
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
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 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Citation:
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....
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 09h25   #8
Membre chevronné
 
Inscription : juillet 2006
Messages : 1 194
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 1 194
Points : 746
Points : 746
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.
Sergejack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 09h48   #9
Membre Expert
 
Inscription : octobre 2007
Messages : 3 947
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 947
Points : 1 905
Points : 1 905
Merci a tous
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 09h49   #10
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
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 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Citation:
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
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 10h10   #11
Membre chevronné
 
Inscription : juillet 2006
Messages : 1 194
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 1 194
Points : 746
Points : 746
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.
Sergejack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 10h13   #12
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
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 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Citation:
On attends tes mesures avec impatience
Je te charriais...

Citation:
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...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 10h38   #13
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 432
Points : 10 432
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Sur 2005, la limite d'imbrication est de 32 :
Citation:
Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32).
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 15h08   #14
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 520
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 520
Points : 3 967
Points : 3 967
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...
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h43.


 
 
 
 
Partenaires

Hébergement Web