Raport przygotowywany trzy minuty nie zostanie otwarty drugi raz. Raport, który blokuje system sprzedaży, zostanie wyłączony.
Osobne miejsce na dane
Kopia danych przeznaczona do analiz zdejmuje obciążenie z systemu produkcyjnego. Przy rosnącej liczbie raportów to rozwiązanie konieczne.
Kopia daje przy okazji swobodę, której nie ma w systemie roboczym: można w niej przechowywać historię nadpisywaną w źródle, przekształcić dane do wygodniejszej postaci i połączyć kilka systemów w jednym miejscu. Sposób jej zasilania opisuje tekst o źródłach danych do raportów.
Wyliczenia przygotowane wcześniej
Sumy dzienne i miesięczne policzone raz, w nocy. Raport odczytuje gotowe wartości zamiast liczyć wszystko od nowa.
Warunkiem jest przemyślenie, co zrobić z dokumentami wprowadzanymi wstecz. Jeśli ktoś doda fakturę za poprzedni miesiąc, przeliczona wcześniej suma przestaje się zgadzać. Rozwiązaniem jest ponowne wyliczanie kilku ostatnich okresów przy każdym uruchomieniu, a nie wyłącznie bieżącego.
Zakres domyślny
Bieżący okres zamiast całej historii. Największa pojedyncza oszczędność przy niemal zerowym koszcie.
Do tego warto dołożyć górne ograniczenie zakresu, którego użytkownik nie przekroczy przypadkiem, oraz przerywanie zapytań trwających zbyt długo. Bez tego jeden nieuważny wybór zakresu potrafi spowolnić pracę wszystkim. Sposób ustawiania parametrów opisuje tekst o raportach na żądanie.
Indeksy
Na kolumnach używanych do filtrowania i łączenia. Ich brak jest najczęstszą przyczyną raportów działających minutami.
Indeksy mają jednak koszt po stronie zapisu, więc dokładanie ich bez sprawdzenia planu wykonania zapytania potrafi pogorszyć pracę systemu produkcyjnego. To jeszcze jeden argument, żeby ciężkie zestawienia trzymać na osobnej kopii, gdzie zapis nie konkuruje z bieżącą pracą.
Ciężkie zestawienia w tle
Uruchamiane poza godzinami pracy, z powiadomieniem o gotowości. Oczekiwanie na ekranie kończy się przerwaniem połączenia.
Ten układ zmienia też zachowanie odbiorców. Raport, który przychodzi sam, jest otwierany; raport, na który trzeba czekać przy komputerze, zostaje pominięty przy pierwszej okazji.
Skąd bierze się spowolnienie
Najczęściej nie z liczby danych, tylko ze sposobu ich łączenia. Zestawienie sięgające do kilku systemów naraz działa w tempie najwolniejszego z nich. Podobnie działa raport wykonujący osobne zapytanie dla każdego wiersza wyniku — przy krótkiej liście jest to niezauważalne, przy dłuższej zatrzymuje wszystko. Warto to sprawdzić, zanim ktokolwiek zacznie dokładać sprzęt.
Pomiar
Czas wykonania każdego raportu, zapisywany. Wydłużanie się w czasie zapowiada problem, zanim ktoś go zgłosi.
Pomiar warto zestawić z liczbą otwarć. Kosztowne zestawienie otwierane rzadko jest kandydatem do wyłączenia, a nie do optymalizacji. Oba te zapisy przydają się przy przeglądzie opisanym w tekście o utrzymaniu raportów.
Kiedy nie warto optymalizować
Zestawienie uruchamiane raz w miesiącu może działać długo i nikomu to nie przeszkadza, jeśli chodzi w nocy. Praca nad jego przyspieszeniem to koszt bez odbiorcy. Optymalizacja opłaca się tam, gdzie ktoś czeka przy ekranie albo gdzie raport konkuruje o zasoby z bieżącą pracą systemu.