Skip site navigation (1) Skip section navigation (2)

pg_freespacemap et théorie sur le free space map

From: DANTE Alexandra <Alexandra(dot)Dante(at)bull(dot)net>
To: pgsql-fr-generale(at)postgresql(dot)org
Subject: pg_freespacemap et théorie sur le free space map
Date: 2007-01-17 13:31:04
Message-ID: 45AE2518.9020904@bull.net (view raw or flat)
Thread:
Lists: pgsql-fr-generale
Bonjour à tous,

Je cherche actuellement à comprendre en détail la gestion du "free space 
map" sous PostgreSQL, et pour cela, j'ai installé la contrib 
"pg_freespacemap" sous PostgreSQL 8.2.0.
Existe-t-il une doc dans laquelle les calculs faits pour déterminer les 
champs "avgrequest", "interestingpages", et "storedpage" utilisés pour 
définir le free space map sont détaillés ?

J'ai testé la contrib pg_freespacemap sur une base de test et je ne 
comprends pas les valeurs qu'elle me renvoie.
Je travaille sur une table "district" dont le schéma est le suivant :
base=# \d district
             Table "public.district"
   Column    |         Type          | Modifiers
-------------+-----------------------+-----------
 d_w_id      | integer               | not null
 d_id        | integer               | not null
 d_ytd       | numeric(12,2)         |
 d_tax       | numeric(4,4)          |
 d_next_o_id | integer               |
 d_name      | character varying(10) |
 d_street_1  | character varying(20) |
 d_street_2  | character varying(20) |
 d_city      | character varying(20) |
 d_state     | character(2)          |
 d_zip       | character(9)          |
Indexes:
    "pk_district" PRIMARY KEY, btree (d_w_id, d_id), tablespace "index_tbs"
Tablespace: "misc_tbs"

Les données de cette table (100 lignes en tout) sont réparties sur 3 pages :
base=# select relname,relnamespace,relfilenode ,relpages ,reltuples from 
pg_class where relname='district';
 relname  | relnamespace | relfilenode | relpages | reltuples
----------+--------------+-------------+----------+-----------
 district |         2200 |       16397 |        3 |       100
(1 row)

Sur cette table, seuls des ordres d'INSERT ont été lancés. Aucun DELETE 
n'a été exécuté.
Les infos renvoyées par "pg_freespacemap_relations" sont les suivantes 
pour cette table :
base=# SELECT c.relname, r.avgrequest, r.interestingpages, r.storedpages
base-#              FROM pg_freespacemap_relations r INNER JOIN pg_class c
base-#              ON c.relfilenode = r.relfilenode INNER JOIN 
pg_database d
base-#              ON r.reldatabase = d.oid AND (d.datname = 
current_database())
base-#              ORDER BY r.storedpages DESC LIMIT 10;
  relname   | avgrequest | interestingpages | storedpages
------------+------------+------------------+-------------
 district   |        250 |                1 |           1
 
Est-ce que quelqu'un pourrait "m'éclairer" sur ces valeurs svp ?
J'ai ensuite lancé un VACUUM VERBOSE sur cette table et j'ai obtenu :
base=# vacuum verbose district;
INFO:  vacuuming "public.district"
INFO:  index "pk_district" now contains 100 row versions in 2 pages
DETAIL:  0 index row versions were removed.
0 index pages have been deleted, 0 are currently reusable.
CPU 0.00s/0.00u sec elapsed 0.00 sec.
INFO:  "district": found 0 removable, 100 nonremovable row versions in 3 
pages
DETAIL:  0 dead row versions cannot be removed yet.
There were 0 unused item pointers.
1 pages contain useful free space.
0 pages are entirely empty.
CPU 0.00s/0.00u sec elapsed 0.00 sec.
VACUUM

De même, comment expliquer le commentaire "1 pages contain useful free 
space" ?

Par avance merci.
Cordialement,
Alexandra


Responses

pgsql-fr-generale by date

Next:From: Guillaume LelargeDate: 2007-01-17 16:17:05
Subject: Re: [pgsql-fr-generale] pg_freespacemap et théorie sur le free space map
Previous:From: Christophe GaraultDate: 2007-01-13 14:52:42
Subject: Re: Imbrication de fonction d'aggregat impossible

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group