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 :

[SQLServer 2k5] PERFORMANCE ET VUES


Sujet :

Développement SQL Server

  1. #1
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 45
    Par défaut [SQLServer 2k5] PERFORMANCE ET VUES
    Question :

    Si je crée plusieurs vue d'une grosse table (20 colonnes, 12millions de lignes), avec pour chaque vue la clef primaire + 5 colonnes utiles pour traitement.
    Et en utilisant l'une ou l'autre des vues selon les colonnes utilisées.

    est-ce que je vais gagner en temps de traitement ?

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    TABLE T_TEST(clef1, clef2, col1,...., col2)
    
    VUE V_TEST1(clef1, clef2, col1, col2, col5, col6)
    
    VUE V_TEST2(clef1, clef2, col7, col8, col9, col10)
    
    select * from V_TEST1
    
    select * from V_TEST2
    Théoriquement les résultats devraient être plus rapide que :

    select clef1, clef2, col1, col2, col5, col6 from T_TEST
    et
    select clef1, clef2, col7, col8, col9, col10 from T_TEST

    Non ?

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Par défaut
    Une vue est une requete, elle n'améliore pas les performances!

    Vous pouvez créer des vues matérialisés avec sql serveur enterprise, là, les vues deviennent des tables ( index cluster ) et vous gagnez en performance sur une vue mais sinon, une vue n'est pas plus rapide que la requete equivalente.

    vous pouvez par contre, creer un index sur les colonnes concernées ( jointure,clause where... ) et là, il est possible que vous gagnerez en performance si l'optimiseur l'utilise. Néanmoins, attention! un index sur une table de 20 millions de ligne peut etre gourmand en mémoire.

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 994
    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 994
    Billets dans le blog
    6
    Par défaut
    Non. Une vue n'étant qu'un appel aux tables sous jacentes, la vue n'apporte pas plus de performances ni moins que la requête qu'elle représente.

    Sauf cas particulier des vues indexées (ou matérialisées) qui n'ont d'intérêt que lorsqu'il y a des calculs agrégés.

    En revanche si vous voulez améliorer les performances pour de très grande tables (volume de plusieurs centaines de Go), alors vous pouvez opter pour un partitionnement qui permet de découper la table sur plusieurs fichiers physiques. Vous obtiendrez des performances mais à deux conditions :
    1) chaque partition de stockage soit sur un disque physique différent
    2) les index des requêtes qui tapent dans les partitions soient eux aussi partitionnés.

    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/ * * * * *

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

Discussions similaires

  1. [SQLServer 2K5] Partionnement d'une table
    Par joKED dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 11/12/2008, 23h35
  2. [SQLServer 2k5] DEBUG DE PS
    Par bdmax dans le forum Développement
    Réponses: 2
    Dernier message: 20/06/2008, 11h59
  3. Réponses: 9
    Dernier message: 18/06/2008, 15h26
  4. Performances : utiliser vues ou tables ?
    Par bibadom dans le forum Optimisations
    Réponses: 2
    Dernier message: 13/06/2007, 15h32
  5. [SQL2K] Performance des vues : XFiles (la vérité est ailleurs)
    Par Worldofdada dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/04/2007, 14h07

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