ďťż
 
jak to przyspieszyc ? ďťż
 
jak to przyspieszyc ?
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

jak to przyspieszyc ?



QWERY - 29-12-2006 00:25
jak to przyspieszyc ?
  Mam 4 tabele

1. produkty - id (unikalny/autoincrement), nazwa (varchar), producent_id
(int)
2. producenci - producent_id (unikalny/autoincrement), nazwa (varchar)
3. zamowienia - zamowienie_id (unikalny/autoincrement), skasowane(int), itp
4. zamowienie_produkty - zp_id (unikalny/autoincrement), zamowienie_id
(int), produkt_id (int), nazwa (varchar), anulowane(int), ilosc (int)

i teraz chcem zliczyć ile sztuk produktów danego producenta mam zamowionych
oraz ile konkretnych produktów...
robie wiec pytanie:

SELECT sum( zamowienie_produkty.ilosc ) AS ilosc_prod,
zamowienia_produkty.nazwa , producent.producent
FROM produkty, zamowienia, producent, zamowienie_produkty
WHERE zamowienie_produkty .zamowienie_id = zamowienia.id
AND produkt.produkt_id = zamowienie_produkty.produkt_id
AND produkt.producent_id = producent.producent_id
AND produkt.producent_id =1
AND zamowienia.skasowane !=1
AND zamowienie_produkty.anulowane !=1
GROUP BY zamowienie_produkty.produkt_id
ORDER BY ilosc_prod DESC

Nie wiem jak przerobic zapytanie / tabele zeby gdy na teraz mam w
zamowienie_produkty ok. 100 000 wpisów zapytanie nie trwało 1,38 sekundy

Ilosc sobie sumuje i mam ilosc całości
a pozatym mam nazwe i ilosc pojedynczego towaru sprzedanego...

Przy 20 producentach 20 * 1,36sekundy to długo - a gdy w zamowienie_produkty
bedzie 200tys czy 500tys wpisów to pewnie wogóle nie ruszy :(

Pomocy proszę od kogoś kto ma pomysł jak to zmienić - najwyraźniej brak jest
jednoznacznego indeksu w zamowienie_produkty ale nie mam pomyslu jak to
zrobic...





Grzegorz Danowski - 29-12-2006 00:25

  "QWERY" <asdzxc109@wp.pl> wrote in message
news:en0bdg$hfc$1@atlantis.news.tpi.pl...
>
> i teraz chcem zliczyć ile sztuk produktów danego producenta mam
> zamowionych oraz ile konkretnych produktów...
> robie wiec pytanie:
>
....
> Pomocy proszę od kogoś kto ma pomysł jak to zmienić - najwyraźniej brak
> jest jednoznacznego indeksu w zamowienie_produkty ale nie mam pomyslu jak
> to zrobic...

1. jaka baza?
2. indeksy są założone? baza je wykorzystuje?
3. po co sortujesz po ilosc_prod?
4. z Joinem zamiast Where próbowałeś (niektóre bazy tak wolą, ale patrz pkt.
1)?

Pozdrawiam
Grzegorz




asdzxc109@wp.pl - 29-12-2006 00:25

 
Grzegorz Danowski napisał(a):
> "QWERY" <asdzxc109@wp.pl> wrote in message
> news:en0bdg$hfc$1@atlantis.news.tpi.pl...
> >
>
> 1. jaka baza?
> 2. indeksy są założone? baza je wykorzystuje?
> 3. po co sortujesz po ilosc_prod?
> 4. z Joinem zamiast Where próbowałeś (niektóre bazy tak wolą, ale patrz pkt.
> 1)?
>
> Pozdrawiam
> Grzegorz

1. baza mysql 4.1.21
2. musze doczytać dokładniej ;) jakieś są ale czy dobre ?!
3. sort po to zeby ładnie pozniej wyswietlic od najwiecej sprzedanych
produktow do najmniej
4. JOINA jeszcze nie sprawdzalem...




Grzegorz Danowski - 29-12-2006 00:25

  <asdzxc109@wp.pl> wrote in message
news:1167316351.699212.234200@i12g2000cwa.googlegr oups.com...
<cite>
> 3. po co sortujesz po ilosc_prod?
....
3. sort po to zeby ładnie pozniej wyswietlic od najwiecej sprzedanych
produktow do najmniej
</cite>

Ok, ale dlaczego sortujesz przed grupowaniem a nie po? Czyli dlaczego nie:
....
Order
sum( zamowienie_produkty.ilosc )

Pozdrawiam
Grzegorz





ali - 29-12-2006 00:25

  > Ok, ale dlaczego sortujesz przed grupowaniem a nie po? Czyli dlaczego nie:
> ...
> Order
> sum( zamowienie_produkty.ilosc )
>

nie bardzo rozumiem...
robie
sum(zamowienia_produkty.ilosc)
aby mieć efekt:
50 (szt) chleb bialy
48 bulki
20 mleko

w PHP sobie robie SUMA+=ilosc przy wyswietlaniu i mam wtedy
RAZEM SPRZEDANO 118 (szt)

a order chyba zawsze musi byc po group by ...




kf - 30-12-2006 01:03

  Użytkownik "Grzegorz Danowski" <gdn__na@serwerze__poczta.onet.pl> napisał w
wiadomości news:en0del$h8$1@inews.gazeta.pl...
> "QWERY" <asdzxc109@wp.pl> wrote in message
> news:en0bdg$hfc$1@atlantis.news.tpi.pl...
> 4. z Joinem zamiast Where próbowałeś (niektóre bazy tak wolą, ale patrz
> pkt. 1)?

5. Co znaczy "chcem" ?

Przeraza mnie ten wszechobecny analfabetyzm. Coraz rzadziej zagladam na te
grupe w obawie, ze zaczna mi sie
utrwalac takie byki. Czy tak trudno pomyslec co sie pisze ?

kf
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Przyspieszenie =?windows-1250?Q?dost=EApu_do_tabel_w_SQL_Server_2005?= [postgresql] szukanie po indeksie tsearch'owym wlecze sie - da siejakos przyspieszyc? [postgresql] Jak =?ISO-8859-2?Q?przyspieszy=E6_zapytanie?= [ORACLE] przyspieszenie selecta z grupowaniem Przyspieszenie wyszukiwania ? sqlnavigator tnsnames Odzyskanie danych po sformatowaniu Jak =?ISO-8859-2?Q?przekaza=E6_listener=3F?= krajan@wp.pl pobieranie w zaleznosci czy pole pierwsze czy drugie -kurde nie wiem jak zapytac
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • lunadance.htw.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com