Łukasz Łuczak

Łukasz Łuczak Ekspert ds. IT -
systemy BackOffice

Temat: "Rozdmuchane" indeksy tabel i vacuum

Witam
Od jakiegoś czasu mam problem "rozdmuchanymi" indeksami. W bazie danych mam kilka table, dla których jest robione wielokrotnie w czasie dnia kasowanie (wszystkich lub części) i dodawanie rekordów. W tabeli może być około 1000 rekordów i rozmiar tabeli badany zapytaniem ma 20MB a indeksy po 700MB i więcej - dzieje się to po około 3-4 miesiącach pracy. Po wykonaniu polecenia:
reindex --table nazwa_tabeli baza
indeksy robią się już poprawne i wyszukiwanie działa błyskawicznie.

Zauważyłem, że jak są rozdmuchane indeksy to vacuum full (polecenie: vacuumdb -f --table nazwa_tabeli baza) dla tabeli działa bardzo długo, a po reindex dosłownie kilka sekund.

Czy zna ktoś jakiś sposób by problem rozdmuchanych indeksów usunąć. Dzieje się tak w wersji 8.4.22 jak i 9.3.5Ten post został edytowany przez Autora dnia 12.03.15 o godzinie 12:15
Daniel Podlejski

Daniel Podlejski DBA,
SysAdmin/DevOps,
backend developer

Temat: "Rozdmuchane" indeksy tabel i vacuum

https://github.com/reorg/pg_repack
Łukasz Łuczak

Łukasz Łuczak Ekspert ds. IT -
systemy BackOffice

Temat: "Rozdmuchane" indeksy tabel i vacuum

Witam
Nie wiem czy może się to komuś przyda ale udało mi się częściowo rozwiązać opisany wcześniej problem. "Rozdmuchane" indeksy powodowane są duża ilością operacji typu insert, update, delete na tabeli. Dla indeksów, które były dla mnie problemem okazało się, że są to głownie tabele tymczasowe wypełniane na krótki okres czasu. Wystarczyło zmienić polecenie delete from nazwa_tabeli; na truncate nawa_tabeli; Problem "rozdmuchanych" indeksów jak i zajmowane miejsce przez bazę danych został rozwiązany przynajmniej chwilowo.
Pozdrawiam

Następna dyskusja:

Jakie indeksy utworzyc dla ...




Wyślij zaproszenie do