System działający sprawnie przez trzy lata potrafi zwolnić na tyle, że praca staje się uciążliwa. Przyczyna rzadko jest jedna.
Typowe przyczyny
- bardzo duża liczba dokumentów historycznych,
- kartoteka z tysiącami nieużywanych pozycji,
- raporty odpytujące całą historię,
- brak konserwacji bazy danych,
- integracje odpytujące system zbyt często.
Zwykle działają razem i wzmacniają się nawzajem. Dlatego szukanie jednej winnej rzeczy prowadzi donikąd — trzeba wyeliminować kolejne przyczyny i po każdej zmianie zmierzyć wynik.
Od czego zacząć
Od ustalenia, co dokładnie jest wolne. „System muli” to nie jest opis problemu. Opisem jest: otwarcie listy dokumentów trwa długo, wystawienie dokumentu nie, a raport miesięczny blokuje pracę wszystkim. Każdy z tych objawów wskazuje na coś innego.
Drugie pytanie: kiedy. Jeśli spowolnienie pojawia się o stałej porze, przyczyną jest zwykle coś uruchamianego automatycznie, a nie liczba danych.
Konserwacja bazy
Regularne przebudowywanie indeksów i aktualizacja statystyk. Najczęściej pomijana czynność o największym efekcie.
To działanie cykliczne, nie jednorazowe. Wykonane raz daje poprawę, która po kilku miesiącach znika. Uruchamia się je poza godzinami pracy, najlepiej razem z kopią zapasową, żeby jedno okno serwisowe obsługiwało obie czynności.
Sprzęt
Serwer bazy danych korzysta przede wszystkim z pamięci i szybkiego dysku. Dołożenie pamięci bywa tańsze niż wszystkie pozostałe działania razem.
Sprzęt jednak nie naprawia błędnych zapytań. Jeśli raport przegląda całą historię przy każdym uruchomieniu, szybszy serwer da poprawę na kilka miesięcy, po czym problem wróci wraz z przyrostem danych. Kolejność jest więc taka: najpierw usunąć oczywiste obciążenia, potem rozważać sprzęt.
Raporty i odczyt bazy
Ciężkie zestawienia własne to jedna z najczęstszych przyczyn spowolnienia w godzinach szczytu. Przeniesienie ich na noc albo na osobną kopię bazy do analiz zwykle rozwiązuje sprawę bez żadnych kosztów sprzętowych.
Archiwizacja
Zamknięcie starych lat i przeniesienie ich poza bazę roboczą. Wymaga rozstrzygnięcia, jak długo dane muszą być dostępne od ręki.
To decyzja biznesowa i formalna, nie techniczna. Trzeba osobno odpowiedzieć na dwa pytania: przez ile lat dane muszą być przechowywane, a przez ile muszą być widoczne w programie bez odtwarzania z archiwum. Odpowiedzi rzadko są takie same.
Integracje
Odpytywanie stanów co minutę przy tysiącach pozycji obciąża system bardziej niż praca użytkowników. Warto zmierzyć, zanim zacznie się szukać gdzie indziej.
Częstym usprawnieniem jest wysyłanie tylko tego, co się zmieniło, zamiast pełnej listy przy każdym cyklu. Efekt bywa większy niż z jakiejkolwiek zmiany po stronie bazy.
Pomiar
Czas otwarcia typowych okien i wystawienia dokumentu, mierzony co miesiąc. Pokazuje pogorszenie, zanim stanie się dokuczliwe. Bez tych liczb każda dyskusja o wydajności opiera się na wrażeniach, a te zmieniają się razem z nastrojem zespołu.