Article View: pl.comp.objects
Article #14628Re: wydajność GenericObject
From: Seweryn Habdank-Wojewódzki
Date: Fri, 21 Apr 2006 14:39
Date: Fri, 21 Apr 2006 14:39
45 lines
2859 bytes
2859 bytes
Witam Marek Wywiał wrote: > Chodzi mi bardziej o coś w rodzaju BulkMode(??) GenericObject > aby tworzenie grupy obiektów nie odbywało się przy pomocy osobnych > zapytań (jeden select na każdy obiekt) tylko jedno zapytanie > zwracające dane dla wielu obiektów naraz, a następnie stworzenie i > zwrócenie takiej załadowanej już kolekcji. To już coraz bardziej nie kapuje. > W praktyce wygląda to tak, że wejście w kategorię produktów na > stronie (zawiera 2-10 produktów) jest szybkie i nie obciaża serwera. > > Natomiast w przypadku generowaniu spersonalizowanego cennika ( ponad > 400 pozycji) trwa to długo, i obciąża maszynę na tyle mocno, że > kolejne zapytania (lub co gorsza cenniki w tym czasie) przekraczają > czas wykonania php. A gdybyś po prostu konstruował w locie zapytanie, poprzez formowanie "stringa". Czyli poprostu jeśli tych ID jest dużo, to grupujesz je po 10, 15 ładujesz do konstruowanego wlocie stringa (który jest zapytaniem SQL) i to wysyłasz do bazy danych. Ladowanie do stringa 400 numerów ID też jest chyba przyciężkawe, więc lepiej zrobić jakieś takie rozwiązanie pośrednie. Czyli pytanie w blokach po X numerów ID. Coś takiego: masz listę ID_list i w niej ID'ki. Ja tniesz na K grup po N elementów i ostatnia może być albo trochę większa niż N albo mniejsza niż N, to zależy jaką strategią uznajesz czy pozwalasz do ostatniej dołączyć restówkę, czy resztówka jest osobno. Można to zrobić inteligentnie i jeśli restówka jest > N/2 to jest osobno jeśli mniejsza to dołączasz ją do ostatnije grupy N elementowej. Potem tworzysz automatycznie zapytania SQL z tymi ID'kami z pociętej listy i wio każde zapytanie jest relatywnie krótkie i jest ich relatywnie niedużo. Pozdrawiam. -- |\/\/| Seweryn Habdank-Wojewódzki `\/\/
Technical Details
Message-ID:
<e2aqno$a99$1@tkdami.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!news.tkdami.net!news.tkdami.pl!not-for-mailReferences:
<1145621432.199758.292090@j33g2000cwa.googlegroups.com> <e2ajvu$1e4$1@tkdami.pl> <1145626731.132393.85910@i39g2000cwa.googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!news.tkdami.net!news.tkdami.pl!not-for-mail From: Seweryn Habdank-Wojewódzki <habdank@gmail.com> Newsgroups: pl.comp.objects Subject: Re: wydajność GenericObject Date: Fri, 21 Apr 2006 16:39:19 +0200 Organization: VectraNet Oswiecim Lines: 46 Message-ID: <e2aqno$a99$1@tkdami.pl> References: <1145621432.199758.292090@j33g2000cwa.googlegroups.com> <e2ajvu$1e4$1@tkdami.pl> <1145626731.132393.85910@i39g2000cwa.googlegroups.com> Reply-To: habdank@gmail.com NNTP-Posting-Host: 82.139.21.12 Mime-Version: 1.0 X-Trace: tkdami.pl 1145630264 10537 82.139.21.12 (21 Apr 2006 14:37:44 GMT) X-Complaints-To: usenet@news.tkdami.pl NNTP-Posting-Date: Fri, 21 Apr 2006 14:37:44 +0000 (UTC) User-Agent: KNode/0.9.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit