Dotaz na prikaz CLUSTER

Ing. Pavel PaJaSoft Janousek janousek na fonet.cz
Středa Srpen 16 09:59:50 CEST 2000


	Zdravim,

	mam dotaz ohledne $SUBJ... mam takovou sekvenci prikazu:

[pajasoft na server pajasoft]$ psql template1
Welcome to psql, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help on internal slash commands
       \g or terminate with semicolon to execute query
       \q to quit

template1=> create table pom(id serial, col text);
NOTICE:  CREATE TABLE will create implicit sequence 'pom_id_seq' for
SERIAL colu
mn 'pom.id'
NOTICE:  CREATE TABLE/UNIQUE will create implicit index 'pom_id_key' for
table '
pom'
CREATE
template1=> create index pom_col_key on pom (col);
CREATE
template1=> \di
       List of relations
    Name     | Type  |  Owner
-------------+-------+----------
 pom_col_key | index | pajasoft
 pom_id_key  | index | pajasoft
(2 rows)

template1=> cluster pom_id_key on pom;
CLUSTER
template1=> \di
       List of relations
    Name    | Type  |  Owner
------------+-------+----------
 pom_id_key | index | pajasoft
(1 row)

template1=>

S udivem jsem zjistil, ze po CLUSTER prijdu (vzdy) o veskere ostatni
indexy. Je toto chovani normalni nebo je to chyba hodna bug-reportu?
Nekde jsem vycetl, ze clusterovani se fyzicky provadi tak, ze se tabulka
fyzicky reorduje na disku do temp tabulky, ktera je pote prejmenovana na
puvodni. Ackoli v drivejsich verzich to neplatilo, alespon v PgSQL 7.0.2
(ktetou aktualni pouzivam) se indexy rusi v okamziku zruseni prislusne
tabulky (drive, jak sequence, tak indexy zustavaly, v teto verzi
zustavaji uz jen sequence).

	Mam za to, ze optimalizace pres CLUSTER je vhodna v pripade, ze v
patricne polozce se bude vyskytovat velke mnozstvi udaju stejne hodnoty,
napr. stejny retezec a proto dotaz typu "select * from pom where col =
'casto_se_vyskytujici_retezec'" je vhodnejsi provadet nejen s vytvorenym
indexem (create index key on pom (col);), ale je vhodne provest i
clustering (cluster key on pom;). 

	Pokud jsem to pochopil spatne, mohl by mi to prosim nekdo objasnit?
Predem dekuji.

-----------------------------------------------------------------------
Ing. Pavel Janousek (PaJaSoft)                 FoNet, spol. s r. o.
Vyvoj software, sprava siti, Unix, Web, Y2K  Anenska 11, 602 00  Brno
E-mail: mailto:Janousek na FoNet.Cz             Tel.: +420  5  4324 4749
SMS:    mailto:P.Janousek na SMS.Paegas.Cz      Fax.: +420  5  4324 4751
WWW:    http://WWW.FoNet.Cz/               E-mail: mailto:Info na FoNet.Cz
-----------------------------------------------------------------------


Další informace o konferenci Databases