|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : décembre 2002 Messages : 18 ![]() |
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 ? |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() ![]() Inscription : mars 2002 Messages : 770 ![]() |
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 ...) |
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2004 Messages : 4 490 ![]() |
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 |
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : décembre 2002 Messages : 18 ![]() |
Merci.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com