2017-05-10 6 views
4

Je suis nouveau dans postgresql et j'essaie de comprendre explain (tampons, analyser) instruction. J'ai une requête et je l'exécute en utilisant explain (buffers, analyze).(tampons, analyser) dans postgresql

La première fois que je l'exécute la performance est pire que la deuxième fois. Aussi, la première fois que j'obtiens un paramètre 'read' à côté de 'hit' alors que la seconde fois le 'read' n'existe pas.

Quelqu'un peut me aider à comprendre?

Répondre

6

première fois que vous sélectionnez, les pages se réchauffer - ils sont chargés dans le cache, une fois qu'ils sont dans la RAM - tous les prochains sélectionne sera plus rapide (vitesse de RAM est plus élevé).

Par conséquent buffers lecture show, lorsque les pages ne sont pas dans le cache, cos postgres les lit, et aucune lecture quand ils sont chauds, donc un cache ...

Mise à jour avec docs:

BUFFERS

Inclure des informations sur l'utilisation du tampon. Spécifiquement, inclure le nombre blocs partagés frappé, lu, sali et écrit, le nombre de blocs locaux frappé, lu, sale et écrit, et le nombre de blocs temp lu et écrit. Un hit signifie qu'une lecture a été évitée car le bloc a déjà été trouvé dans le cache lorsque cela était nécessaire. Les blocs partagés contiennent des données provenant de tables et d'index normaux; les blocs locaux contiennent des données provenant de tables et d'index temporaires; tandis que des blocs temporaires contiennent données de travail à court terme utilisés dans les sortes, hash, Materialise nœuds de plan, et cas similaires. Le nombre de blocs salis indique le nombre de blocs précédemment non modifiés qui ont été modifiés par cette requête; tandis que le nombre de blocs écrits indique le nombre de blocs précédemment salis expulsés du cache par ce backend pendant le traitement de la requête . Le nombre de blocs affichés pour un nœud de niveau supérieur inclut ceux utilisés par tous ses nœuds enfants. Au format texte, seules les valeurs non nulles sont imprimées. Ce paramètre ne peut être utilisé que lorsque ANALYZE est également activé. La valeur par défaut est FALSE.

Et étonnamment peu sur les tampons here.