Z upływem czasu baza danych Comarch ERP Optima może znacząco spowalniać – generowanie raportów trwa kilka minut, otwieranie modułów jest powolne, a wydruk dokumentów się opóźnia. Przyczyną jest najczęściej fragmentacja indeksów, rosnące rozmiary plików dziennika lub suboptymalna konfiguracja SQL Server. Opisujemy sprawdzone metody optymalizacji.
Przebudowanie i reorganizacja indeksów
Fragmentacja indeksów SQL Server to najczęstsza przyczyna spowolnienia Optimy na dużych bazach danych. Sprawdź stopień fragmentacji zapytaniem:
SELECT object_name(object_id), index_id, avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats(DB_ID('CDN_NazwaFirmy'), NULL, NULL, NULL, 'LIMITED')
WHERE avg_fragmentation_in_percent > 10;
Dla fragmentacji 10–30% wykonaj ALTER INDEX ALL ON tabela REORGANIZE, powyżej 30% – ALTER INDEX ALL ON tabela REBUILD. Przebudowę indeksów planuj na czas poza godzinami pracy (nocne okno serwisowe).
Aktualizacja statystyk SQL Server
Statystyki pomagają optymalizatorowi SQL Server wybierać optymalne plany zapytań. Po dużych operacjach importu danych lub po przebudowie indeksów warto odświeżyć statystyki:
USE CDN_NazwaFirmy;
EXEC sp_updatestats;
Możesz też skonfigurować Auto Update Statistics na poziomie bazy danych (właściwości bazy → Opcje → Auto Update Statistics = True).
Zarządzanie rozmiarem pliku dziennika transakcji
Plik dziennika transakcji (.ldf) może rozrastać się do setek gigabajtów, jeżeli baza pracuje w trybie Full Recovery bez regularnych kopii dziennika. W środowiskach bez specjalnych wymagań RODO/audytowych możesz zmienić tryb odzyskiwania na Simple:
ALTER DATABASE CDN_NazwaFirmy SET RECOVERY SIMPLE;
DBCC SHRINKFILE (CDN_NazwaFirmy_log, 100);
Po zmniejszeniu pliku log usuń zbędne miejsce i monitoruj wzrost pliku przez kolejne dni.
Konfiguracja pamięci SQL Server
SQL Server domyślnie próbuje zajmować całą dostępną pamięć RAM systemu. W konfiguracji Maximum Server Memory (SSMS → właściwości serwera → Memory) ustaw limit, zostawiając co najmniej 2–4 GB dla systemu operacyjnego. Dla serwera z 16 GB RAM ustaw Max Memory na 12 GB. Nieograniczone zużycie pamięci przez SQL może powodować spowolnienie całego systemu i Optimy.
Archiwizacja starych danych i czyszczenie tabel
Comarch ERP Optima oferuje mechanizm archiwizacji dokumentów i danych historycznych. W Narzędzia → Archiwizacja danych można przenieść stare zapisy do archiwum, odchudzając aktywną bazę. Duże tabele (np. historia stanów magazynowych, logi operacji) mogą drastycznie spowalniać raporty. Regularny przegląd i czyszczenie tabel tymczasowych i logów systemowych w ramach obsługi serwisowej znacząco poprawia wydajność.