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 :

[2005] Partitionner table pour chaque valeurs de X


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 [2005] Partitionner table pour chaque valeurs de X
    Bonjour,

    J'ai une table avec un champ entier qu'on n'a qu'à appeller X.
    J'aimerais savoir s'il m'est possible de faire une partition des lignes de cette table pour chaque valeur de X.

    Genre X = 156 => partition avec 13 lignes, X = 896 => parition avec 5 lignes, etc.

    Merci.

  2. #2
    Membre expérimenté
    Inscrit en
    Février 2009
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 224
    Par défaut
    Bonjour,
    tout d'abord le partitionnement de table ne sera efficace que dans le cas où votre table possède de très nombreuses lignes. Les exemples que vous citez sont très nettement insuffisant pour mettre en place un partitionnement.
    La fonction de partitionnement travail par plage de valeur, il est donc tout à fait possible de définir des partitions en fonctions de la valeur contenue dans le colonne X.
    + d'infos sur la fonction de partitionnement http://msdn.microsoft.com/fr-fr/library/ms187802.aspx

  3. #3
    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
    Dans la doc, il est indiqué qu'il faut fournir une liste de valeur que pourrait atteindre X afin de crée les partitions (de plus cette liste est limitée à 999 valeurs).

    Moi, j'aurais une infinité de valeur.
    Je songe à la partition parce que jamais je n'aurai à faire d'opération (insert/delete/update/select...) sur cette table pour des colonnes ayant des X distinct.

    X représente vraiment l'isolation des groupes des lignes.

  4. #4
    Membre Expert Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Par défaut
    Même si vous n'avez pas d'opération de modification de données à faire sur ces parties de tables, le simple fait de les partitionner en autant de partition risque de vous faire perdre plus en lecture de métadonnées que le fait de modifier une table non partitionnée dont une grande partie n'est pas modifiée.

  5. #5
    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
    Pourtant quand je fais une oppération de suppression de toutes les lignes pour un même X, celle-ci est très coûteuse en process (peut-être parce que j'ai 2 indexes sur cette table).

  6. #6
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Bonjour,

    Le partitionnenement de tables ne vaut que pour les très grosses bases de données en général lorsque la RAM ne suffit plus à contenur l'ensemble des données que l'on désire avec de gros traitements et lorsque meme la mise en place des index ne permet plus d'obtenir des performances satisfaisantes ou bien encore lorsque la moindre opération sur la table prend énormément de ressources et / ou de temps.

    Pourtant quand je fais une oppération de suppression de toutes les lignes pour un même X, celle-ci est très coûteuse en process (peut-être parce que j'ai 2 indexes sur cette table).
    Qu'appelez vous coûteuse en progress ? Quelle quantité de données ?
    Quelle est la DDL de votre table ? Sur quelle colonne et valeur voulez vous vraiment partitionner ?

    ++

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/11/2015, 00h03
  2. Requete avec limite pour chaque valeur du IN
    Par grunge0 dans le forum Requêtes
    Réponses: 4
    Dernier message: 29/09/2009, 14h00
  3. Réponses: 3
    Dernier message: 20/08/2009, 13h52
  4. utile de créer une table pour chaque utilisateur ?
    Par Overstone dans le forum Langage SQL
    Réponses: 6
    Dernier message: 22/03/2008, 14h37
  5. Réponses: 1
    Dernier message: 18/05/2005, 18h18

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