Disclaimer. SubiektMCP to niezależny wdrożeniowiec (nie jesteśmy oficjalną integracją z InsERT). Ten artykuł to 90 procent techniczny troubleshooting, 10 procent gdzie AI pomaga.
Subiekt GT zawieszał się od zawsze. To program z 2003 roku, stale aktualizowany, ale architektonicznie z innej epoki. Po 3-5 latach pracy każda baza spowalnia. Otwarcie kartoteki towarów trwa 20 sekund. Generowanie raportu sprzedaży zawiesza komputer na minutę. Po kliknięciu “wystaw fakturę” 5-10 sekund pauzy.
Ten artykuł rozkłada siedem konkretnych trików, od najprostszych do najbardziej technicznych. Plus krótko o AI w diagnozie spadku wydajności.
Diagnoza. Co naprawdę spowalnia
Zanim cokolwiek “naprawiasz”, zrozum CO jest wolne. Cztery typowe winowajce:
- Subiekt GT sam (interfejs Visual Basic 6) - rzadko wolny sam w sobie
- SQL Server (baza danych) - najczęściej powolny po latach narastania
- Dysk (HDD vs SSD) - operacje I/O
- Sieć (w wersji wielostanowiskowej) - jeśli baza na innym komputerze
Zacznij od czego: w Menedżerze Zadań (Ctrl+Shift+Esc) obserwuj kto zjada CPU/RAM/disk gdy Subiekt jest wolny. Jeśli SQL Server zjada 90 procent CPU → problem w bazie. Jeśli Subiekt sam → problem w klient. Jeśli “Network” wysoki → sieć.
Trik 1. REINDEX bazy SQL Server (raz na 6-12 mc)
Najwięcej efektu na najmniej pracy. Z czasem indeksy SQL fragmentują, statystyki nie są aktualne, planer zapytań wybiera złe ścieżki.
-- W SQL Server Management Studio, na bazie Subiekta:
EXEC sp_msforeachtable 'ALTER INDEX ALL ON ? REBUILD';
UPDATE STATISTICS [TwojaBazaSubiekt] WITH FULLSCAN;
Trwa 15-30 minut. Zrób w weekend gdy nikt nie używa. Często daje 50-80 procent przyspieszenia.
Trik 2. SSD zamiast HDD
Subiekt na klasycznym HDD to mordęga. SSD daje 5-10x przyspieszenie wszystkim operacjom I/O.
- SSD SATA 500 GB ~250 zł
- SSD NVMe 500 GB ~300 zł
- Praca informatyka na przeniesienie systemu + bazy: 2-4 godziny
Po SSD operacje które trwały 30 sekund mogą trwać 3 sekundy. Inwestycja zwraca się w pierwszym tygodniu produktywności.
Trik 3. Wyjątek antywirusa dla folderu bazy
Avast, Bitdefender, ESET, Comodo skanują plik bazy SQL w czasie rzeczywistym przy każdej operacji odczytu/zapisu. To zabija wydajność.
Domyślne ścieżki bazy do dodania jako wyjątek:
- C:\Program Files\Microsoft SQL Server\MSSQL14.INSERTGT\MSSQL\DATA\
- C:\Program Files\Microsoft SQL Server\MSSQL15.INSERTGT\MSSQL\DATA\
- C:\ProgramData\InsERT\
W ustawieniach antywirusa: Wyjątki / Wykluczenia → dodaj te foldery.
Mniej znany trik: dodaj też proces sqlservr.exe jako wyjątek scanowania pamięci.
Trik 4. Więcej RAM (8 GB minimum, 16 zalecane)
Subiekt sam zjada ~500 MB-1 GB. SQL Server w trybie domyślnym chce 2-4 GB. System Windows 4 GB. Razem 8-9 GB minimum.
Jeśli masz tylko 4 GB, Windows ciągle stronicuje do dysku. Każdy odczyt z bazy = dodatkowe operacje I/O. Spowolnienie 5-10x vs adekwatny RAM.
Dorzucenie 8 GB RAM do typowego PC: 150-250 zł + 30 minut pracy.
Trik 5. Defragmentacja w MSSQL (jeśli HDD)
Jeśli wciąż masz HDD (zobacz Trik 2 zanim cokolwiek), zrób defragmentację dysku ZWYKŁĄ Windows (dfrgui.exe), plus REINDEX bazy.
NA SSD nie wolno robić defragmentacji (zużywa nadmiernie SSD). Tylko TRIM (Windows robi automatycznie).
Trik 6. Upgrade SQL Server 2008 → 2019/2022
SQL Server 2008 R2 to dinosaurów dinosauł. Wolniejszy od 2019/2022 o 30-50 procent na tych samych operacjach.
SQL Server 2022 Express jest DARMOWY do 10 GB bazy. Większość baz Subiekta GT mieści się w 1-3 GB nawet po latach.
Procedura: 1. Backup bazy (z 2008): SSMS → prawy klik → Tasks → Back Up 2. Zainstaluj SQL Server 2022 Express obok 2008 3. Restore bazy do 2022 4. W Subiekcie GT zmień string połączenia na nową instancję 5. Po tygodniu testów odinstaluj 2008
Trwa 2-4 godziny. Daje 30-50 procent przyspieszenia + access do nowszych funkcji SQL.
Trik 7. Reorganizacja bazy podmiotowej (raz na 2-3 lata)
Po 5+ latach baza ma narastające historie, archiwum dokumentów, dziennik użytkowników, transakcje finansowe. To zajmuje miejsce i spowalnia.
InsERT ma narzędzie “Konwerter SubGT” (płatne, ~500 zł) lub robisz przez “Reorganizacja podmiotów” w Administracji Subiekta.
UWAGA: ZAWSZE rób backup PRZED. Reorganizacja może uszkodzić bazę jeśli przerwana.
Daje 10-20 procent przyspieszenia.
Czego NIE robić
NIE 1. “Wyczyść bazę” przez kasowanie starych dokumentów
Subiekt GT nie radzi sobie z kasowaniem dokumentów (referencje, indeksy, archiwum). Ręczne kasowanie zostawia “dziury” w bazie. Reorganizacja (Trik 7) robi to bezpiecznie.
NIE 2. Wyłączać SQL Server na noc
Niektórzy myślą “skoro nie używam, wyłączę”. SQL Server uruchamia się 30-60 sekund. Każdy start = przeciążenie I/O. Lepiej zostawić działający, da się obejść przez “automatyczny restart” raz w tygodniu.
NIE 3. Instalować “optymalizatorów Windows”
CCleaner, IObit, “antywirus optymizator” itd. Często psują rejestr, kasują pliki Subiekta, lub kolidują z SQL Server. Nie warte ryzyka.
NIE 4. Defragmentować SSD
SSD nie wymaga defragmentacji. Klasyczna defragmentacja zużywa SSD niepotrzebnie. Windows 10/11 automatycznie robi TRIM (poprawne).
Kiedy AI pomaga
Pełne ujawnienie. ja jestem founderem SubiektMCP. Stronniczy.
AI nie naprawi za Ciebie SQL Server ani sieci. Ale pomaga w trzech scenariuszach diagnostycznych:
Scenariusz 1. Identyfikacja powolnych zapytań
“Pokaż mi top 10 najwolniej wykonywanych zapytań SQL w mojej bazie Subiekta w ostatnich 7 dniach. Dla każdego pokaż średni czas wykonania i ile razy zostało wywołane.”
Claude czyta logi SQL Server, znajduje zapytania trwające >5 sekund, pokazuje pattern. Wiesz która operacja w Subiekcie jest najwolniejsza. Często to konkretny raport, który możesz uniknąć lub przyspieszyć.
Scenariusz 2. Trend spadku wydajności
“Porównaj liczbę dokumentów wystawianych dziennie w mojej bazie w ostatnich 12 miesiącach. Czy widać wzrost vs spadek? I jak to się ma do wzrostu rozmiaru bazy?”
Wykres. Jeśli baza rośnie o 30 procent rocznie, a operacje wolniej tylko o 10 procent, jesteś OK. Jeśli baza wolniej o 50 procent przy wzroście 20, problem w bazie/serwerze.
Scenariusz 3. Sugestie indeksów
“Sprawdź w mojej bazie Subiekta czy są indeksy ze statystykami starszymi niż 30 dni. Pokaż listę z sugerowanym indeksem do rebuild.”
Lista konkretnych indeksów. SQL Server da Ci to też (sys.dm_db_index_usage_stats), ale AI ułatwia interpretację po polsku.
Plan ratunkowy. “Mój Subiekt jest tragicznie wolny”
Jeśli wszystko klika wolno i nie wiesz od czego zacząć:
1. Backup (15 min). Zrób backup bazy przez SSMS → prawy klik → Tasks → Back Up. Bezpieczeństwo.
2. SSD (jeśli nie masz, 2-4h). Największy single jump w wydajności.
3. RAM (jeśli <8 GB, 30 min). Dorzuć 8 GB.
4. REINDEX bazy (30 min). Skopiuj z Trik 1.
5. Antywirus wyjątek (5 min). Z Trik 3.
Po tych 4 krokach 80 procent firm wraca do akceptowalnej wydajności.
Jeśli wciąż wolno, czas na profesjonalny audyt (InsERT albo serwis zewnętrzny). Koszt 200-400 zł/h, zwykle 4-8 godzin.
Najczęstsze pytania
Czy zmiana na Subiekt Nexo rozwiąże problem wydajności? Nexo to nowsza linia, technicznie szybsza. Ale ma swoje problemy i migracja kosztuje. Pisałem o Subiekt GT vs Nexo. Najpierw spróbuj triki, później rozważ migrację.
Czy chmurowy Subiekt (jak Optima Online) jest szybszy? Cloud nie jest magicznym przyspieszeniem. Jeśli masz dobry komputer + SSD, on-premise często szybszy niż cloud (latencja sieci). Jeśli komputer słaby, cloud może być wybawcą.
Ile zajmuje moja baza? Jak sprawdzić? SSMS → prawy klik na bazie → Properties → Size. Albo SELECT name, size*8/1024 AS size_mb FROM sys.master_files WHERE database_id = DB_ID('TwojaBaza');. Typowo 100 MB - 5 GB dla MŚP.
Czy mogę przenieść SQL Server na osobny komputer? Tak. Architektura klient-serwer. Plus: kompetencja zasobów, minus: sieć dochodzi jako wąskie gardło. Sensowne dla 5+ stanowisk.
Co dalej
Ten artykuł łączy się z najczęstszymi błędami Subiekta GT (szerszy zakres problemów) i stanami minimalnymi (wydajne wykorzystanie raportów).
Jeśli interesuje Cię użycie AI w diagnostyce wydajności, 14-dniowy trial SubiektMCP lub 7 dni klucz bez karty: nikodem@subiektgt.chat.
Linki
- Powiązany: Najczęstsze błędy Subiekta GT
- Powiązany: Eksport danych z Subiekta GT do Excela
.subiekt-subscribe-form input[type=”email”]::placeholder { color: #71717A; }