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 Test