Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/05/2005, 09h32   #1
Invité régulier
 
Inscription : décembre 2002
Messages : 18
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 18
Points : 7
Points : 7
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 ?
celine31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2005, 10h52   #2
Membre émérite
 
Avatar de hpalpha
 
Inscription : mars 2002
Messages : 770
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 770
Points : 833
Points : 833
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 ...)
hpalpha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2005, 11h33   #3
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
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
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2005, 15h23   #4
Invité régulier
 
Inscription : décembre 2002
Messages : 18
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 18
Points : 7
Points : 7
Merci.
celine31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h55.


 
 
 
 
Partenaires

Hébergement Web