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 :

Fonction : query+string to array+comparaison des tableaux


Sujet :

PostgreSQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Fonction : query+string to array+comparaison des tableaux
    Bonjour,

    Je débute en postgres que je vais utiliser pour un entrepôt de données à côté de ma base principale, avec un autre sgbd. La structure est simple, mais la volumétrie va être élevée. C'est assez élevé pour justifier qu'une table indicateur (qui est déjà le résultat d'un calcul) dispose d'un champ qui concatène des clés primaires. Celles ayant servi pour le résultat.
    Or, je cherche une solution propre pour effectuer de multiples croisements. Exemple :

    Indicateur 1 : "Total avec des machins" pour la période 201512 qui vaut 4 et clés primaires 1900,1870,3052, 4012
    Indicateur 2 : "Total avec des trucs" pour la période 201512, qui vaut 2 et clés primaires 1900,4012

    J'imagine procéder en créant une fonction qui effectuera ma query, puis dans une boucle, un string to array. Puis comme je le vois dans la doc de postgres je pourrais faire ceci :

    arrayRowNmoins1[1900,1870,3052, 4012] && arrayRowN[1900,4012]

    Et ensuite retourner le résultat qui serait donc dans le cadre de l'exemple "Total avec des machins et des trucs" (valeur 2 et clés 1900,4012).

    Question, ma démarche est-elle la bonne ?
    Car je ne vois pas comment je peux faire par simple query. D'autre part, sans demander le code exacte, comment je code ça ? Pas la query, juste la loop et le return !

    D'avance 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 770
    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 770
    Points : 52 723
    Points
    52 723
    Billets dans le blog
    5
    Par défaut
    Aucune des méthodes n'est la bonne. En effet, PostGreSQL n'est pas du tout optimisé pour faire de l’entrepôt de données surtout si vous annoncez de forte volumétrie.
    Avoir une clef concaténée qui résulte de multiples clef va conduire à une clef trop longue inefficace.
    Avoir une clef composite sur des compositions variantes (vous pouvez ajouter une colonne de discrimination dans votre clef pour savoir d’où vient cette clef) va conduire à une meilleure organisation pour des recherches précises mais ne supportera pas non plus une charge importante, car l'optimiseur de PostgreSQL ne sait pas optimiser le "star join"....

    Autrement dit, la seule solution viable est d'opter pour un SGBDR plus indiqué pour cela comme Oracle, SQL Server ou Terradata.

    Quel serait la volumétrie en nombre de lignes et d'octets ?
    Quel est le temps de réponse souhaité ?

    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
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Et merci pour votre réponse !
    On ne joue pas dans la même catégorie : quand j'annonce volumétrie élevée, c'est sans commune mesure avec ce que vous devez connaître.
    Si j'ai 10^6 indicateurs par an, ce sera le bout du monde. Et en disant celà, c'est dans l'optique de signer un client à la limite de notre système.
    Pour le cas actuel, ça se situera aux alentours de 250k à 300k par an.
    Après, je ne souhaite pas que ces indicateurs soient stockées dans la base principale.
    Quant aux clés concaténés, pour un indicateur annuel, on se situerait aux alentours de 4000 clés.

    Voilà, navré de ne pas avoir précisé ça et annoncé d'emblée "volumétrie élevée".

  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 770
    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 770
    Points : 52 723
    Points
    52 723
    Billets dans le blog
    5
    Par défaut
    Dans ce cas là, ça devrait tenir la route, mais prévoir TRES large en terme de cache (RAM 64 Go par exemple...) à voir

    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. Macro VBA Arrays : utilisation des tableaux
    Par HUGOBASS dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/08/2015, 10h49
  2. [MySQL] Comparaison des tableaux 2 dimensions en PHP
    Par hessaid dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 28/06/2008, 21h36
  3. Addition de strings dans des tableaux
    Par OVR-101 dans le forum VB.NET
    Réponses: 2
    Dernier message: 25/01/2007, 08h07
  4. Fonctions VBA renvoyant des tableaux dans Excel
    Par phil_75 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/08/2006, 00h19
  5. [Conception] Utiliser les fonctions des tableaux ou plusieurs requêtes ?
    Par Derik dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 01/02/2006, 09h54

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