|
|
Duvody pro vacuum
|
7.8.2006 12:30
Pavel Stěhule
|
Zdar,
nejsem si jisty jestli bych pochopil Vase vysvetleni, proc je potreba provadet VACUUM. Rozhodne PostgreSQL nezachazi s daty stejne jako dbase. Jadro pudla je nekde jinde. PostgreSQL implementuje tzv. MVCC architekturu reseni transakci. Z toho vypliva, ze kazda modifikace radku (UPDATE, DELETE) zkopiruje radek. Vyvojari PostgreSQL zvolili strategii odlozeneho mazani mrtvych (nedostupnych) radku na dobu, kdy databaze neni zatizena, tj. explicitni spousteni prikazu VACUUM.
Pavel |
|
|
Re: Duvody pro vacuum
|
9.8.2006 10:32
Lukáš Zapletal
|
Přesně tohle jsem zde chtěl napsat :-) Je totiž dobré seznámit čtenáře o tak důležité věci. Podobně to dělá třeba i Firebifd. Ovšem například Oracle, který používá v podstatě tutéž architekturu, ty tabulky čistí průběžně (raději mne opravte, pokud blábolím). |
|
|
VACUUM doplnění
|
7.8.2006 12:49
Pavel Stěhule
|
ještě bych doplnil pár poznámek:
1. VACUUM ANALYZE provádí pouze sběr statistik, a "optimalizuje" přístup k dostupným řádkům.
2. VACUUM FREEZE resetuje čítač transakcí. - každá transakce v pg má vlastní unikátní číslo. Záleží na intenzitě provozu, ale je pravděpodobné, že někdy dojde k přetečení čítače. PostgreSQL včas varuje, že může dojít k této situaci. Každý řádek tabulky obsahuje číslo transakce, která jej vytvořila. Při FREEZE se tyto hodnoty nahradí konstantou freeze_id, a provede se reset čitače. Jedná se opravdu o velice náročnou i relativně rizikovou operaci, kterou je třeba spouštět jen tehdy, pokud dostanete upozornění.
2. VACUUM FULL provádí fyzické odstranění nedostupných záznamů. Dochází k zamykání tabulek.
Na obyčejně zatížených databázích se doporučuje provádět ANALYZE jednou až několikrát týdně, FULL jednou měsíčně. Záleží na podmínkách, typu dat, atd. ANALYZE má vliv na optimalizaci dotazu (planer má přesný údaj o počtu řádků), jednak na přístupovou dobu při čtení řádku. Bez analyze se sekvenčně čtou i nedostupné řádky.
Pokud někdo používáte starší než 8.0 verzi, pak doporučuji, co nejdříve přejít na novější. Jednak novější verze jsou o dost rychlejší, druhak obsahují nástroje pro automatizaci spouštění VACUUM. 8.0 má v contribu pg_autovacuum což je démonek, který monitoruje databázi a provádí odpovídající úroveň VACUUM, když je třeba. 8.1 má pg_autovacuum přímo integrováno
Pavel |
|
|
Order na linuxoch
|
12.8.2006 14:48
blindmen
|
Dobry den
viem ze sa to nehodi k tomuto clanku, ale mam problem s orderom na debiane. Zoraduje mi zaznamy dost nahodne. vytvoril som data :
initdb --locale=sk_SK.utf8 /usr/local/pgsql/dataSK
databazu mam s encodingom UTF8
show LC_CTYPE v pg_adminovi vypise sk_SK
show LC_COLLATE tiez.
zoraduje to naozaj nahodne prve je Ž potom Ľ potom znova Ž ...
neviete mi poradit ako by to malo fungovat.
locale -a vypise :
C
cs_CZ
cs_CZ.iso88592
cs_CZ.utf8
czech
en_US
en_US.iso88591
POSIX
sk_SK
sk_SK.iso88592
sk_SK.utf8
slovak
takze by to malo podporovat.
Dakujem
|
|
|
Co dal
|
6.9.2006 10:22
Tomk
|
Na co se jeste muzeme tesit v serialu ? Chci migrovat na postgre z mysql tak jsem zvedavy jestli se budou probirat treba udf procedury funkce a jak zapojit jine programovaci jazyky. Z manualu vim ze by nemel byt problem psat procedury v C++ atd. |
|
|
|
|
KOMENTARZE
|
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
|
|
Szukanie oprogramowania
|
©Pavel Kysilka - 2003-2024 |
maillinuxsoft.cz | Design:
www.megadesign.cz
|