![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Mam zoptymalizowane zapytanie sql (przynajmniej tak mi się wydaje, indeksy pozakładane), które pobiera z bazy pewne dane na konkretny dzień (bieżąca data). Dane wyciągane są z dwóch tabel. Wszystko ładnie śmiga, dopóki nie próbuję pobierać danych z pewnego zakresu dat. Np.
Takie zapytanie zwraca mi około 1500wierszy. Następnie za pomocą foreach() wyświetlam je na stronie. Wystarczy zakres miesiąca w datach aby przeglądarka (FF, Opera i IE) zawieszała się na czas generowania strony. Po prostu nie reaguje na polecenia. W tym samym czasie obciążenie procesora wzrasta do 100% i utrzymuje się jeszcze kilkanaście sekund po wykonaniu zapytania!!! Firefox pokazuje mi że strona ładowana jest około 56sekund. Aplikacja intranetowa, nie ma znaczenia czy testuje lokalnie czy na szybkim serwerze Hp dwurdzeniowym z 2Gb pamięci. Dodatkowo Firefox po zakończeniu generowania strony bardzo wolno działa czasami przestaje (trzeba ubijać proces). Najciekawsze jest to, że samo zapytanie generuje się: - w konsoli mysql ~0,5sekundy - aplikacja podaje, że cały skrypt php wykonał się w ~0,7sekund Sprawdzałem WinCacheGrind i nie ma żadnego "wąskiego gardła". To, że firefox muli jeśli na stronie jest dużo danych to wiedziałem. Ale dlaczego wszystkie przeglądarki tak długo generują stronę i nie reagują? Spotkaliście się z czymś takim? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 275 Pomógł: 44 Dołączył: 23.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mam zoptymalizowane zapytanie sql (przynajmniej tak mi się wydaje, indeksy pozakładane), które pobiera z bazy pewne dane na konkretny dzień (bieżąca data). Dane wyciągane są z dwóch tabel. Wszystko ładnie śmiga, dopóki nie próbuję pobierać danych z pewnego zakresu dat. Np.
Takie zapytanie zwraca mi około 1500wierszy. Następnie za pomocą foreach() wyświetlam je na stronie. Wystarczy zakres miesiąca w datach aby przeglądarka (FF, Opera i IE) zawieszała się na czas generowania strony. Po prostu nie reaguje na polecenia. W tym samym czasie obciążenie procesora wzrasta do 100% i utrzymuje się jeszcze kilkanaście sekund po wykonaniu zapytania!!! Firefox pokazuje mi że strona ładowana jest około 56sekund. Aplikacja intranetowa, nie ma znaczenia czy testuje lokalnie czy na szybkim serwerze Hp dwurdzeniowym z 2Gb pamięci. Dodatkowo Firefox po zakończeniu generowania strony bardzo wolno działa czasami przestaje (trzeba ubijać proces). Najciekawsze jest to, że samo zapytanie generuje się: - w konsoli mysql ~0,5sekundy - aplikacja podaje, że cały skrypt php wykonał się w ~0,7sekund Sprawdzałem WinCacheGrind i nie ma żadnego "wąskiego gardła". To, że firefox muli jeśli na stronie jest dużo danych to wiedziałem. Ale dlaczego wszystkie przeglądarki tak długo generują stronę i nie reagują? Spotkaliście się z czymś takim? SQL nie ma nic wspólnego z przeglądarką i jej szybkim działaniem. To jest kwestia wielkości wygenerowanej strony. Jeżeli wygenerujesz tak dużą stronę bez zapytania SQL to też będzie działać wolno. Dlatego też nie ma znaczenia gdzie aplikacja się znajduje. I dlatego też samo zapytanie, czy też skrypt php wykonuje się poniżej sekundy. To nie jest kwestia tylko firefoxa, tylko wielkości strony. Jakiejbyś przeglądarki nie wziął to zawsze będzie problem przy olbrzymich stronach. Może trzeba zainwestować w więcej ramu? Bez samej strony niewiele ci tu pomogę... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 01:50 |