Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 15.03.2013 Ostrzeżenie: (0%)
|
Witam,
Mam pewien skrypt (PHP), który sprawdza i na bieżąco modyfikuje bazę danych (SQL). Używam serwera Apache na domowym komputerze. posiadam: Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7 mysqlnd 5.0.10 Przy czym mój skrypt wykonuje tysiące operacji i trwa niemożebnie długo. Liczba operacji modyfikacji bazy danych w tym skrypcie to ponad 2000 do 5000 przy jednym uruchomieniu. Czas od uruchomienia skryptu do jego zakończenia z pewnością przekracza 30 sekund, a może mierzony jest w minutach. Nie jestem w stanie go zoptymalizować, zresztą nie ma to sensu (skrypt uruchamiam tylko parę razy dla całej bazy danych i dla zwykłych użytkowników nie jest dostępny) Mogę uruchamiać jego części, np. 1/50 całości i wszystko działa jak należy. Lecz gdy próbuję uruchomić całość - Apache jakby się zacinał. Próbowałem z ob_start() i ob_flush(), lecz nie daje to żadnego rezultatu. Gdy informacji do przetworzenia jest zbyt dużo - po prostu strona jakby się cały czas wgrywała - może to trwać nawet pół godziny (ustawiłem też set_time_limit(0) ) i nic się nie zmienia, strona nadal ma status wgrywającej się, Apache nadal ją mieli i nie można załadować żadnych innych stron (wiem, wiem - mam nie ustawioną wielowątkowość Apache w windows). Muszę resetować serwer. Raczej nie występuje problem nieskończonego zapętlenia się gdzieś w kodzie, gdyż wykonując ten skrypt po kawałku, wszystko jest ok. Problemem jest odpalenie całości. Nie jestem w temacie ustawień Apache (czy może jakiś ustawień w PHP?) zbyt dobrze obeznany, proszę zatem Was o pomoc Nie wiem nawet, co jeszcze mógłbym zmienić w ustawieniach. Może ten temat był już na forum poruszany? Proszę o wskazówki, stoję w miejscu, nie potrafię tego problemu przeskoczyć. |
|
|
|
golab Bardzo długi czas ładowania się wielkiego skryptu 29.03.2014, 00:16:48
ctom Cytat(golab @ 29.03.2014, 00:16:48 ) ... 29.03.2014, 09:16:16
golab mam tam transaction wewnątrz transaction i tym pod... 30.03.2014, 20:47:59 ![]() ![]() |
|
Aktualny czas: 20.08.2025 - 02:58 |