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 :

partitionnement sql server


Sujet :

Administration SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    consultant BI
    Inscrit en
    Mai 2011
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suède

    Informations professionnelles :
    Activité : consultant BI
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2011
    Messages : 182
    Points : 95
    Points
    95
    Par défaut partitionnement sql server
    bonjour a tous
    Si je fait une action du partitionnement d'un table sans changer l’emplacement physique c'est dire je travaille toujours sur le même Groupe du Fichier primary qui est aussi positionner sur la même emplacement du disque
    Est ce que ma action du partitionnement ne va pas donner d'amélioration en terme performance
    Est ce que chaque action du partitionnement doivent être associer avant par la création d'un deuxième Group du fichier qui est aussi doit être mis sur un disque physique dédier
    MERCI

  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 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Très peu au final. Le seul intérêt étant qu'en cas d'escalade de verrou la montée se fait primairement à la partition avant la table quand c'est possible.

    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 habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2013
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2013
    Messages : 74
    Points : 160
    Points
    160
    Par défaut
    Bonjour,

    Je serais moins formel que SQLPro.

    Le partitionnement, en terme de performances, c'est deux principaux atouts:
    • Elimination des partitions non pertinentes. Dans une requête qui contient un filtre sur la colonne partitionnée, le moteur ne brassera pas les partitions qui ne correspondent pas au filtre. Moins de données brassées = meilleure performance. Ceci est valable même lorsque les partitions sont dans le même groupe de fichiers.
    • Parallélisme. Dans une requête qui ne contient pas de filtre sur la colonne partitionnée, le moteur peut "éclater" certaines opérations en plusieurs opérations parallèles. Il s'agira ici de brasser des données en parallèle, la performance sera meilleure lorsque les données seront positionnées sur des disques physiques différents (et pas sur des groupes de fichiers placés sur les mêmes disques...).



    Vous trouverez un complément d'informations sur le sujet dans cet article.

  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 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Je serais moins affirmatif que bvesan... !


    Citation Envoyé par bvesan Voir le message
    Bonjour,

    Je serais moins formel que SQLPro.

    Le partitionnement, en terme de performances, c'est deux principaux atouts:
    • Elimination des partitions non pertinentes. Dans une requête qui contient un filtre sur la colonne partitionnée, le moteur ne brassera pas les partitions qui ne correspondent pas au filtre. Moins de données brassées = meilleure performance. Ceci est valable même lorsque les partitions sont dans le même groupe de fichiers.
    Tout dépend des requêtes. Si toutes vos requêtes passent la colonne de partitionnement dans un prédicat alors oui. mais en pratique c'est loin d'être le cas. Et un index, fait encore mieux !
    • Parallélisme. Dans une requête qui ne contient pas de filtre sur la colonne partitionnée, le moteur peut "éclater" certaines opérations en plusieurs opérations parallèles. Il s'agira ici de brasser des données en parallèle, la performance sera meilleure lorsque les données seront positionnées sur des disques physiques différents (et pas sur des groupes de fichiers placés sur les mêmes disques...).
    SQL Server faisant naturellement du parallélisme lors des accès aux tables et notamment lorsque les tables sont grosses et les données à rapporter importante, il n'ay a donc pas de grosse différence avec une table partitionné.

    MAIS, là ou c'est pire, c'est sur de petite tables, car les plans de requêtes sont plus complexes et mettent plus de temps à être calculés !

    Bref, il faut tester ! mais tester tout (avant et après partitionnement) et sur un volume réel....

    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 habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2013
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2013
    Messages : 74
    Points : 160
    Points
    160
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    SQL Server faisant naturellement du parallélisme lors des accès aux tables et notamment lorsque les tables sont grosses et les données à rapporter importante, il n'ay a donc pas de grosse différence avec une table partitionné.
    Je pensais plutôt au parallélisme sur jointure de tables: Parallel Hash Join et Parallel Merge Join lorsqu'une des deux tables est partitionnée, et Collocated Joins (jointures par partitions) lorsque les deux tables suivent le même schéma de partition.
    Un article intéressant sur le sujet (en anglais)..
    A noter que l'on gagnera aussi en finesse de statistiques puisque ces dernières existent pour chaque partition d'une table ou d'un indexe partitionné...

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par bvesan Voir le message
    Je pensais plutôt au parallélisme sur jointure de tables: Parallel Hash Join et Parallel Merge Join lorsqu'une des deux tables est partitionnée, et Collocated Joins (jointures par partitions) lorsque les deux tables suivent le même schéma de partition.
    Mais ce sont des algorithmes massivement plus lours donc intéressant sur de gros volumes sur lesquels les partitions seront sur différents storage physiques
    Un article intéressant sur le sujet (en anglais)..
    A noter que l'on gagnera aussi en finesse de statistiques puisque ces dernières existent pour chaque partition d'une table ou d'un indexe partitionné...
    Tout dépend de la dispersion des données... Si tu partitionne par année et non par date, aucun intérêt !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/10/2011, 15h50
  2. Réponses: 0
    Dernier message: 10/10/2011, 02h31
  3. [sql server 2008]table partitionnée
    Par Moine dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/12/2010, 17h53
  4. [SQL Server 2005] Fonction de partitionnement
    Par elsuket dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/04/2007, 18h39

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