[inne] [PostgreSQL] Vacuuming, analyzing, clustering, reindex. Co to wszystko jest?

    • evLeisure
      evLeisure
      Brąz
      na forum od: 14.11.2011 Posty: 3 051
      Hej

      Opisałby mi ktoś pokrótce na czy polegają:
      - vacuuming
      - analyzing
      - clustering
      - reindex
      ?

      Jak rozumiem wszystko to służy do utrzymania naszej bazy w najlepszym stanie. Tracker dzięki temu działa szybciej itd. Jednakże na czym co polega? Co najlepiej wykonywać częściej, a co warto odpuścić?

      Podobnie update cache w trackerze co właściwie robi?

      Dzięki
  • 4 odpowiedzi
    • spinek
      spinek
      SuperModerator
      SuperModerator
      na forum od: 27.09.2009 Posty: 5 931
      Cześć evLeisure,

      Postaram się wyjaśnić pokrótce, choć też nie jestem jakimś wielkim specem.

      - vacuuming
      Odzyskiwanie wolnego miejsca na dysku. Gdy usuniesz coś z bazy np. za pomocą opcji Purge tak naprawdę nic nie jest usuwane tylko oznaczone jako puste. Dopiero przeprowadzenie vacuuming powoduje rzeczywiste odzyskanie miejsca na dysku.

      - analyzing
      Analiza struktury bazy danych. Generalnie chodzi o zgromadzenie danych statystycznych na temat bazy danych, które mają usprawnić i przyśpieszyć proces obsługi zapytań do bazy (pozyskiwania z niej informacji).

      - clustering
      Reorganizacja danych w bazie według indexów. Generalnie to jak układanie książek na półce. Np. układasz alfabetycznie, ale od czasu do czasu ktoś Ci coś pomiesza. Clustering przywraca pożądany układ.

      - reindex
      Indeksy usprawniają dostęp do danych w bazie. Czasem jest potrzeba zrobienia reindex, gdy jakiś indeks ulegnie awarii. Czasem się tak zdarza np. przy nagłym resecie komputera. Wtedy występują błędy np. przy imporcie historii rąk i zrobienie reindex pomaga.

      Jeszcze kilka słów o cache'u.

      Ponieważ szybkość dostępu do statystyk wyświetlanych w HUD-zie jest kluczowa, wszelkie statystyki są obliczone wcześniej i umieszczone w cache'u, żeby były łatwo dostępne.

      W przypadku PT4, którego używasz, dobrze to widać w przypadku statystyk własnych lub ściągniętych z internetu (niewbudowanych w PT4). Takie statystyki nie są w cache'u i często trzeba czekać zanim się wyświetlą w HUD-zie, bo są obliczane na bieżąco co może długo trwać, gdy statystyka jest skomplikowana.

      Opcja Rebuild Cache oblicza wszystkie statystyki na nowo. Generalnie taka konieczność występuje przy np. zmianie sposobu obliczania statystyk i bywa wymuszona podczas instalacji nowej wersji w PT4. Proces ten długo trwa, bo wymaga obliczenia statystyk dla wszystkich graczy w bazie.

      Normalnie podczas gry po każdej zaimportowanej ręce cache jest automatycznie aktualizowany.

      Generalnie PT4 został tak zrobiony, żeby w zasadzie w ogóle nie wymagał Housekeepingu. W PT3 było trochę inaczej, bo trzeba było robić update cache po manual import. W PT4 nie ma takiej potrzeby.

      Największą potrzebę wykonywania takich działań widziałbym u graczy, którzy kupują i importują historię rąk, czasem ją usuwają, bo wtedy baza może nie wyglądać najlepiej i housekeeping może pomóc.

      W zasadzie vacuuming i analyzing jeszcze nie trwa tak długo, więc można czasem zapuścić. A reszta to już tylko jak widać, że coś nie chodzi tak jak powinno lub sam program tego wymaga.

      Pozdrawiam
    • evLeisure
      evLeisure
      Brąz
      na forum od: 14.11.2011 Posty: 3 051
      Dzięki wielki! Takich informacji właśnie szukałem.

      Tylko powiedziałbyś coś więcej na temat clustering'u? O ile w przypadku innych zagadnień podana przez Ciebie definicja jasno wskazuje czy warto wykonywać dany proces, o tyle w przypadku clustering'u wciąż nie jestem pewien.
    • spinek
      spinek
      SuperModerator
      SuperModerator
      na forum od: 27.09.2009 Posty: 5 931
      Hej,

      Ostatnio nawet gdy wypuszczają nową wersje PT4, która wymaga update'u bazy nie robią clusteringu.

      Generalnie twórcy PT4 twierdzą, że nie ma potrzeby wykonywania housekeepingu, bo program jest tak stworzony, żeby wszystko działało OK.

      Osobiście rozważyłbym jednak clustering zwłaszcza w przypadku kupowania i importowania dużych ilości rąk.

      W każdym razie takie szczegółowe pytania najlepiej zadaj bezpośrednio supportowi PT4. Oni najlepiej powinni wiedzieć w jakich sytuacjach clustering może być pomocny.

      Pozdrawiam
    • evLeisure
      evLeisure
      Brąz
      na forum od: 14.11.2011 Posty: 3 051
      Dzięki jeszcze raz. Wielki plus za wiedzę, iż używam PT4, choć nie wspominałem o tym w tym wątku ;)