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 PostgreSQL Discussion :

Partition de données : héritage?


Sujet :

Administration PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 77
    Par défaut Partition de données : héritage?
    Bonjour,
    J'ai des milliards de données dans une table qui sont triées par date.
    Par soucis de performance d'accés, j'ai partitionné via l'héritage cette table de façon à regrouper les données tous les 10 jours, et je fais ça depuis 2007.
    Table_mere : date, double
    Table_fille_01012009
    Table_fille_10012009
    Table_fille_20012009
    etc.

    Mais voila. Maintenant, j'ai énormément de tables et le double de rêgles
    (D'ailleurs, je dois à chaque fois que je crée une table, créer les rêgles qui vont avec ce qui est embetant pour maintenir la base).
    Lorsque je veux inserer une donnée et que je ne précise pas la table fille, Postgres check toutes les rêgles, ce qui rend les insertions particulierement longue.

    Alors je me pose la question : Est-ce une bonne solution pour les performances? Y en a t'il d'autres? Y a t'il un moyen pour me simplifier la tâche au niveau maintenance(creation de table/rêgles)

    edit : postgresSQL 8.3.5

  2. #2
    Membre émérite Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Par défaut
    Bonjour,

    Quelle est la taille des tables filles ?

    Il est recommandé par la doc postgre de ne pas dépasser la taille de la mémoire physique du serveur pour un table.
    Je prends donc souvent ce critère pour partitionner.

    Peut-être avez-vous trop partitionné? Un partitionnement tous les 10 jours depuis 2007 est-il vraiment nécessaire?

    Cordialement,

    Arkhena

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 77
    Par défaut
    Alors si je prends une table fille :

    Il y a environ 31 273 330 lignes dedans. La table fait 6Go (imaginez la taile de la table sans partition! )
    J'ai entendu parlé d'un format de stockage hdf5 qui pourrait correspondre au probleme, mais il parrait que c'est complexe à utiliser et il n'y a pas de lien avec postgres (on pourrait stocker les adresses des fichiers)


    Il est recommandé par la doc postgre de ne pas dépasser la taille de la mémoire physique du serveur pour un table.
    Je n'ai pas compris la subtilité. (taille de la mémoire physique = capacité des disques? j'aurais dit donc plus : la taille d'une base de donnée ne devrait pas depasser la taille de la mémoire disponible mais bon, il me reste 20Go sur les 500 de dispo)

  4. #4
    Membre émérite Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Par défaut
    Citation Envoyé par ledjlale Voir le message
    Je n'ai pas compris la subtilité. (taille de la mémoire physique = capacité des disques? j'aurais dit donc plus : la taille d'une base de donnée ne devrait pas depasser la taille de la mémoire disponible mais bon, il me reste 20Go sur les 500 de dispo)
    Non, la taille de la mémoire physique, c'est la taille de la RAM (je ne compte pas la swap, je ne sais pas si c'est un tord).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 77
    Par défaut
    Ha ok. En mémoire vive, j'ai 8Go (il se peut effectivement que certaines tables depassent et ça explique surement pourquoi je rame sec)

    .. et 64Go de swap sur un disque dédié

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    Citation Envoyé par ledjlale Voir le message
    Bonjour,
    Lorsque je veux inserer une donnée et que je ne précise pas la table fille, Postgres check toutes les rêgles, ce qui rend les insertions particulierement longue.
    2 ans divisé par 10 jours, ça doit faire à peu près (2*365)/10 = 73 règles?
    C'est sûr que sur des millions d'exécutions d'INSERT, ça peut faire une différence significative par rapport à aucune règle.
    La solution est de préciser directement la table fille dans le code client (à supposer que l'environnement client le permette). Il faut également utiliser soit des requêtes préparées avec PREPARE, ou mieux COPY s'il est possible de regrouper ensemble les données par table fille destination. COPY est normalement ce qui est préconisé pour de l'insertion en masse.

Discussions similaires

  1. Réponses: 6
    Dernier message: 10/09/2007, 18h09
  2. Droits sur une partition de données
    Par Hobbi1 dans le forum Administration système
    Réponses: 3
    Dernier message: 17/07/2006, 13h48
  3. Réponses: 1
    Dernier message: 07/06/2006, 11h02
  4. Héritage, Accès aux données ...
    Par Joad dans le forum C++
    Réponses: 14
    Dernier message: 28/04/2006, 11h16
  5. Heeeelp J'ai perdu une partition de 250go de données
    Par jeje.r dans le forum Windows XP
    Réponses: 9
    Dernier message: 09/01/2006, 11h36

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