Re: table temporaire ou raz

From: Guillaume Lelarge <guillaume(at)lelarge(dot)info>
To: William Dode <wilk(at)flibuste(dot)net>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: table temporaire ou raz
Date: 2008-07-14 09:28:08
Message-ID: 487B1C28.3050808@lelarge.info
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

William Dode a écrit :
> On 13-07-2008, Guillaume Lelarge wrote:
>>[...]
>> William Dode a écrit :
>>> Pour faciliter les éditions j'utilise des tables intermédiaires, je me
>>> demande toujours s'il vaut mieux remettre à zéro une table existante ou
>>> la recréer à chaque fois en TEMP ?
>>> Sachant que plusieurs personnes vont peut-être demander une édition en
>>> même temps et donc que ça se déroule systématiquement dans une
>>> transaction.
>>>
>>> A priori j'imagine qu'il vaudrait mieux utiliser une table temporaire
>>> (qu'elles sont faites pour ça), mais je ne le fait pas systématiquement
>>> car ça rend plus difficile le debugage.
>>>
>>> Des avis ?
>>>
>> Une table temporaire a une bonne chance de ne se trouver qu'en mémoire,
>> surtout avec un temp_buffers bien configuré. Une "vraie" table sera
>> systématiquement sur disque. Donc, pour des raisons de performances,
>> j'aurais tendance à privilégier la création de tables temporaires.
>> Surtout dans votre cas où vous serez dans une seule et même transaction.
>
> Je viens de vérifier et effectivement le gain est intéressant. Par
> contre je ne sais pas comment optimiser le temp_buffers. Dans quel cas
> faut-il que je change la valeur par défaut ?
>

Ça dépend principalement de la taille des objets temporaires et du
nombre de sessions qui pourront, en parallèle, créer ces objets. À
priori, pendant la période de debug, vous allez utiliser des objets sur
disque. Profitez-en pour surveiller la taille des objets qui seront
temporaires par la suite (avec pg_total_relation_size). Vous aurez ainsi
une meilleure idée de la configuration nécessaire ensuite.

>> Je comprends bien le soucis que cela pose pour le débuggage. Néanmoins,
>> les avantages (en terme de performance, donc pour les utilisateurs)
>> dépassent de loin les inconvénients (en terme de facilité, pour les
>> développeurs).
>
> Je vais m'y prendre en deux fois alors, passer en temporaire lorsque
> l'appli sera stabilisée.
>

Ça me semble le mieux, en effet.

--
Guillaume.
http://www.postgresqlfr.org
http://dalibo.com

In response to

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Stéphane Bunel 2008-07-14 21:54:44 Question de dates
Previous Message William Dode 2008-07-14 09:00:45 Re: table temporaire ou raz