Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Bardzo długi czas ładowania się wielkiego skryptu
golab
post
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 (IMG:style_emoticons/default/smile.gif)

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ć.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
ctom
post
Post #2





Grupa: Zarejestrowani
Postów: 321
Pomógł: 55
Dołączył: 19.04.2009

Ostrzeżenie: (0%)
-----


Cytat(golab @ 29.03.2014, 00:16:48 ) *
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.


wykonujesz te query pojedynczo czy przez transaction ?
Go to the top of the page
+Quote Post
golab
post
Post #3





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 15.03.2013

Ostrzeżenie: (0%)
-----


mam tam transaction wewnątrz transaction i tym podobne (IMG:style_emoticons/default/tongue.gif)

Ale znalazłem, dlaczego tak się działo - w PHP wszystko było okej, ale w bazie danych używałem napisanej przez siebie procedury, która zapętlała się w nieskończoność w pewnym bardzo szczególnym przypadku, raz na tysiąc.
Teraz wszystko się ładuje normalnie.

Niemniej dzięki za pomoc!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 00:02