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
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 |