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

PostgreSQL Discussion :

Table partitionée comptage


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Janvier 2015
    Messages : 13
    Par défaut Table partitionée comptage
    Bonjour,

    j'ai une table partionnée avec 12 partitions:

    Comment puis je obtenir le nombre de lignes de chaque partition?


    Code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    CREATE TABLE mkt.t_fac_member_mails
    (
      ibroadlogid integer NOT NULL,
      ideliveryid integer NOT NULL,
      memberid integer NOT NULL,
      siteid integer NOT NULL,
      mail_id_quot integer NOT NULL,
      istatus smallint NOT NULL,
      histoloadid integer NOT NULL
    )
    WITH (
      OIDS=FALSE
    )
    DISTRIBUTED BY (ibroadlogid, ideliveryid, memberid, mail_id_quot)
    PARTITION BY RANGE(mail_id_quot) 
              (
              START (20120301) END (20120331) INCLUSIVE WITH (appendonly=false), 
              START (20120401) END (20120430) INCLUSIVE WITH (appendonly=false), 
              START (20120501) END (20120531) INCLUSIVE WITH (appendonly=false), 
              START (20120601) END (20120630) INCLUSIVE WITH (appendonly=false), 
              START (20120701) END (20120731) INCLUSIVE WITH (appendonly=false), 
              START (20120801) END (20120831) INCLUSIVE WITH (appendonly=false), 
              START (20120901) END (20120930) INCLUSIVE WITH (appendonly=false), 
              START (20121001) END (20121031) INCLUSIVE WITH (appendonly=false), 
              START (20121101) END (20121130) INCLUSIVE WITH (appendonly=false), 
              START (20121201) END (20121231) INCLUSIVE WITH (appendonly=false), 
              DEFAULT PARTITION other  WITH (appendonly=false)
              )
    ;
    ALTER TABLE mkt.t_fac_member_mails OWNER TO group_owner_prod;
    GRANT ALL ON TABLE mkt.t_fac_member_mails TO group_owner_prod;
    GRANT SELECT ON TABLE mkt.t_fac_member_mails TO g_pr_mkt_r;


    et une partition:



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    CREATE TABLE mkt.t_fac_member_mails_1_prt_1
    OF 
    (
     
      CONSTRAINT t_fac_member_mails_1_prt_1_check CHECK (mail_id_quot >= 20120301 AND mail_id_quot <= 20120331)
    )
    INHERITS (mkt.t_fac_member_mails)
    WITH (APPENDONLY=false, 
      OIDS=FALSE
    )
    DISTRIBUTED BY (ibroadlogid, ideliveryid, memberid, mail_id_quot);
    ALTER PARTITION mkt.t_fac_member_mails_1_prt_1 OWNER TO group_owner_prod;
    GRANT ALL ON PARTITION mkt.t_fac_member_mails_1_prt_1 TO group_owner_prod;
    GRANT SELECT ON PARTITION mkt.t_fac_member_mails_1_prt_1 TO g_pr_mkt_r;
    ---------

    merci

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Vous pouvez soit interroger directement une partition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select count(*) from mkt.t_fac_member_mails_1_prt_1;
    Soit toute la table, sur la clef de partition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      select floor(mail_id_quot / 100), count(*)
        from mkt.t_fac_member_mails
    group by floor(mail_id_quot / 100);

Discussions similaires

  1. Requête pour "sérialiser" une table de comptage
    Par aztazt dans le forum Langage SQL
    Réponses: 2
    Dernier message: 05/10/2009, 11h07
  2. [AC-2003] Requete sur table pour comptage
    Par mat2424 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 24/09/2009, 11h36
  3. DELETE très long sur grosse table partitionée
    Par glutock dans le forum SQL
    Réponses: 3
    Dernier message: 28/04/2008, 10h47
  4. tables SYSINDEXES - Comptage nombre de lignes dans une tables
    Par Labienus dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 13/04/2008, 23h20
  5. lien sur meme table et comptage
    Par gildemont dans le forum Oracle
    Réponses: 5
    Dernier message: 10/03/2006, 15h14

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