Zpomalujici se Pg

Horak Daniel horak na sit.plzen-city.cz
Pátek Listopad 1 12:03:23 CET 2002


: 
> : > > - Proc se teda Pg nerozhodne cas od casu ten index 
> prepocitat sam,
> : > > 	kdyz uz je jasne, ze je nekde neco spatne.
> : 
> :  Protoze je to blboucky a pouhy software a nechava dulezita 
> rozhodnuti
> :  na uzivately. IMHO je to tak dobre, protoze VACUUM si bere celkem
> :  velkou rezii a pokud by si ho system delal dle vlastni 
> uvahy tak by asi 
> :  dost lidi mohlo nadavat, ze v prave naprosto nevhodne dobe doslo k
> :  zpomaleni systemu tim, ze PostgreSQL by delal neco z 
> vlastni iniciativy.
> :  
> 	:-)
> 
> 	Ono ve skutecnosti nejde ani tak o to, ze tabulka narusta
> (co uz, zejo). Jde o to, ze ten _index_ nejak nefunguje, resp. asi

A opravdu se pouziva index? Co rika EXPLAIN pred updaty, po updatech, po
vacuum?

> zahrnuje i smazane polozky nebo tak neco. Protoze i kdyby mel pro tech
> 1000 radku skakat buhvikde po disku, tak je musim mit nactene 
> behem vteriny
> v pameti a behem dalsi vteriny setridene a poslane klientovi. Jenze
> podle topu bere prislusny postmaster 100% CPU a tedy stroj 
> neni omezen tim
> ze by tabulka byla rozeseta nekde po disku, ale tim ze nekde pocita
> nejaky divny index. Dokazu si predstavit, ze to muze fungovat treba
> tak blbe, ze se podle primarniho klice dostanu na vsechny 
> verze prislusneho
> radku, ktere kdy v tabulce byly, a musim sekvencne vybrat ten 
> pravy, ktery je
> samozrejme az na konci.

Znamy problem s indexy je ten, ze ani VACUUM FULL je neumi "zmensit" -
tj. odstranit polozky patrici smazanym zaznamum apod. Je tedy nutne
indexy znovu vytvorit.

> 
> : > > - Jak tenhle problem odstranit, pokud nechci periodicky 
> po nekolika
> : > > 	malo hodinach delat vacuum?
> : 
> :  VACUUM od 7.2 uz by nemelo byt tak drasticky ukon (pokud to neni
> :  VACUUM FULL) a nemyslim, ze by byl problem ho periodicky 
> volat. Je to
> :  jen otazka designu aplikace nad PostgreSQL jak ho bude pouzivat a
> :  udela-li pro neco takoveho prostor (coz uz ted vi i Michal 
> Krause :-)
> 
> 	Jde o to, ze vacuum zabere cas kdy je tabulka zablokovana,
> pokud se nemylim. Cili u aplikaci, ktere musi mit interaktivni odezvu,
> je to fakt nahouby.

VACUUM (od verze 7.2, synonymum je ANALYZE) slouzi jen k aktualizaci
statistik pro planovac. A staci mu pristup do tabulky jen pro cteni.
VACUUM FULL uz provadi fyzickou reorganizaci tabulek a to musi mit
tabulky zamcene pro zapis.


			Dan


Další informace o konferenci Databases