![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 11 Dołączył: 9.07.2010 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam kod, który działa tak jak miał działać - tj. wykonuje wszystkie czynności jakie ma robić. Niestety obciąża mi serwer dosyć znacznie i spowalnia strony. Z indeksu przeniosłem go do jednej z podstron i trochę się poprawiło ale ta podstrona teraz działa wolno. Oto kod:
Dałoby się to jakoś zoptymalizować lub zrobić żeby robiło się np. raz na 10 minut, a nie z każdym wczytaniem strony? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
skoro update robisz w pętli i jest on zależny od zewnętrznego zapytania to wystarczyło by, gdybyś ten update robił w jednej transakcji na całą pętlę, poczytaj o tym...
oprócz tego pierwszą pętlę z UPDATE możesz załatwić w jednym zapytaniu gdyż zmienia się tylko warunek WHERE a reszta jest statyczna SQL IN Operator drugi update to już raczej trzeba zacząć transakcję przed pętlą i zakończyć za pętlą... choć jeszcze to Ci się nie przyda, ale np. ja problem z aktualizacją wielu danych z plików XML (sporych więc parsowałem te pliki nie przez DOM a SAX) gdzie czasami trzeba było dodać nowe rekordy rozwiązałem w ten sposób, iż tworzyłem tabelę tymczasową identyczną i w transakcji robiłem insert, po czym zapytanie gdzie id się powtarzało (nie mam tam autoinkrementacji - można to dać też na inne unikalne rekordy) robiłem jednym zapytaniem UPDATE from SELECT , kolejnym insert from select, a kolejnym usuwałem tabelę tymczasową... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 11:52 |