Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: AdoDB i jej slaba wydajnosc
Forum PHP.pl > Forum > Gotowe rozwiązania > Skrypty obsługi baz danych
Cezar708
Witam.

Używam AdoDB (@version V4.91 2), baza danych to PostgreSQL 8.1

W pewnym momencie zauwazyłem ze skrypty sa po prostu wolne... Używając Benchmark::Profiler z PEAR'a wyszukałem 'wąskie gardło', okazało się nim AdoDB.

Przykład:
Listing 1:
  1. <?php
  2. function get_sections(){
  3.  
  4. global $conn; // to jest obiekt AdoDB
  5. $sql_select = '
  6. SELECT id_section, longname
  7. FROM exe_sections
  8. ORDER BY sorter
  9. ';
  10. return $conn->getAll($sql_select);
  11.  
  12. }
  13. ?>

Listing 2:
  1. <?php
  2. function get_sections(){
  3. global $db; // to jest resource - wynik pg_connect()
  4. $sql_select = '
  5. SELECT id_section, longname
  6. FROM exe_sections
  7. ORDER BY sorter
  8. ';
  9. return pg_fetch_all(pg_query($db,$sql_select));
  10. }
  11. ?>


Wynik jaki pokazał Profiler był dla mnie zaskakujący, ponieważ okazało się, że listing 1 wykonywał się ponad pięciokrotnie dłużej niż listing 2, gdzie nie użyłem AdoDB. Oczywiście tendencja ta jest prawidłowa do odwołań w całym systemie...

Czy to jest normalne?

Niefortunnie AdoDB jest używany w całym projekcie.
Czy jest jakiś sposób na 'przyspieszenie' tej biblioteki, albo w zgrabny sposób zamiana jej na inną - szybszą (czyli tak, żeby nie przekopywać wszystkich skryptów)?

Mieliście taki problem? Jeśli tak to jak go rozwiązaliście?
nrm
Cytat(Cezar708 @ 25.01.2007, 19:36:57 ) *
Mieliście taki problem? Jeśli tak to jak go rozwiązaliście?

zrezygnowałem z AdoDB :/ to straszna kobyła.

może zobacz to:
http://adodblite.sourceforge.net/index.php
i to
http://adodblite.sourceforge.net/benchmark.php
i to
http://creole.phpdb.org/trac/
i to
http://www.openpb.net/downloads.php
Cezar708
Na początek wersja AdoDB Lite musi mi starczyć.

Fakt... wg Benchmark::Profiler'a AdoDB-lite jest około 2x szybsze od 'zwykłego' AdoDB, póki co na wersji roboczej będę z nim pracował... zobaczymy czy czasem wersja LITE nie ma jakiś ukrytych wad.

Dzięki za pomoc.

Nie rozpoczynając nowego wątku...

... dla dużego systemu (około 1000-1500 zalogowań dziennie), który chodzi na PostgreSQL to jaką bibliotekę używacie do łączenia się z bazą? Pytam, bo zawsze (do teraz) byłem zwolennikiem AdoDB, ale ta historia nauczyła mnie że rzeczywistość nie jest taka piękna.
nrm
PDO. Nie pobijesz tego szybkością softowego rozwiązania. Do tego jakiś cache, zobacz jak wygląda w/w biblioteka OpenPowerDriver. Możesz to sobie dowolnie rozbudować.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.