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
Views: Raw Message | Whole Thread | Download mbox | Resend email
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

Browse pgsql-fr-generale by date

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