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 :

Conseil utilisation table temporaire


Sujet :

PostgreSQL

  1. #1
    Membre averti
    Inscrit en
    Décembre 2002
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 18
    Par défaut Conseil utilisation table temporaire
    Bonjour,
    Je souhaiterais bénéficier de vos lumières pour un conseil sur la meilleure façon de faire pour optimiser mes temps de traitement et la propreté de ma base postgre :

    J'ai besoin d'utiliser une table qui va contenir des données temporaires : je m'en sers depuis java pour traiter plus vite ces données (qui sont le résultat d'une requete croisée de deux autres tables) et sur lesquelles je fais des calculs un peu gourmands. Je m'en sers pour 2 ou 3 traitements de suite puis je vide la table.
    Evidemment je me suis vite apercu que les enreg supprimés ne l'étaient pas physiquement et donc grosse grosse table avec temps d'accès pas raisonnable. J'ai essayé d'éxécuter la commande vacuum qui prend un temps infini ... Alors j'ai plutot opté pour detruire la table et la recreer a chaque fois.
    Est-ce que le fait de detruire et recreer des tables ne va pas laisser des tonnes de fichiers dans l'arborescence de postgre ?
    J'ai pensé aux tables temporaires mais ca marche comment ? Quand sont-elles supprimées ?

  2. #2
    Membre Expert
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Par défaut
    C'est le meilleur choix est à mon avis, les tables temporaires consomment en theorie que de la ram.
    La table temporaire n'a d'existence que dans une session, celle qui l'a cree.
    Elle est automatiquement detruite a la fin de la session ou a la fin d'une transaction (parametrable - ON COMMIT ...)

  3. #3
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    j'utilise les tables temporaires et je n'ai constaté que deux points un peu négatifs :

    1) La table temporaire est détruite avec la session, mais dans des cas rares (interruption brutale de la session suite au plantage du client) il peut arriver que le schéma temporaire utilisé pour stocker la table ne soit pas détruit. Il faut intervenir manuellement pour le supprimer. (ceci dit je ne l'ai constaté qu'avec la version 7.3, peut-être que c'est différent avec la 8.0)

    2) comme la table est créée en cours d'utilisation, les éventuelles procédures stockées qui y accèdent ne peuvent le faire qu'avec des PERFORM ou des EXECUTE, ce qui empêche toute planification et donc entraine des performances moindres.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  4. #4
    Membre averti
    Inscrit en
    Décembre 2002
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 18
    Par défaut
    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment utiliser une table temporaire ?
    Par tibofo dans le forum Développement
    Réponses: 4
    Dernier message: 04/03/2009, 19h36
  2. Réponses: 2
    Dernier message: 19/06/2008, 16h46
  3. Réponses: 4
    Dernier message: 21/05/2008, 11h56
  4. Réponses: 8
    Dernier message: 04/01/2008, 08h28
  5. Utilisation table temporaire ?
    Par dipso dans le forum Requêtes
    Réponses: 2
    Dernier message: 12/12/2007, 19h50

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