7 messaggi dal 22 novembre 2004
CIao a tutti, ho una query che fino ad oggi andava benissimo, poi il numero dei record è incrementato fino a 55000 in una tbl e 8000 in un'altra! :-(((
Adesso ci mette circa 17 secondo per restituirmi risultati!
Se qualcuno può aiutarmi... grazie mille e buon natale!

select sum(occorrenze) as ArticoliPresenti, famiglia, descrizione_famiglia
from
(
select famiglia, descrizione_famiglia, count(*) as occorrenze
from webarticoli
where settore= '3'
and (codart <> all (select codart from soci_codicinascosti where idcliente=50 and (codart <> '' and not isnull(codart))))
and (codart <> all (select codicecdr from soci_webarticoli where idcliente=50 and (codicecdr <> '' and not isnull(codicecdr)))) group by famiglia, descrizione_famiglia
UNION
SELECT soci_webarticoli.famiglia, soci_webarticoli.descrizione_famiglia, count(*) as occorrenze
FROM soci_webarticoli
INNER JOIN webarticoli
ON soci_webarticoli.CodiceCDR = webarticoli.CodArt
WHERE soci_webarticoli.IDCliente=50 and soci_webarticoli.settore = '3' group by soci_webarticoli.famiglia, soci_webarticoli.descrizione_famiglia
union
select famiglia, descrizione_famiglia, count(*) as occorrenze
from soci_webarticoli
where IDCliente =50 and settore= '3'
and (codicecdr = '' or isnull(codicecdr))
group by famiglia, descrizione_famiglia
)
as fake_qry group by famiglia, descrizione_famiglia order by descrizione_famiglia;
3.122 messaggi dal 16 maggio 2002
Ma che versione di mySQL usi?? A quanto ne sapevo io almeno fino alla 4.x non supportava le subquery, di cui tu invece fai ampio uso.

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
823 messaggi dal 05 agosto 2002
Le solite domande ....
Explain plan? Indici sulla tabella? Parametri del server (MySQL) RAM della macchina?
Ciao

Stick to your guns.
Formazione su MySQL o Firebird? Contattami!
7 messaggi dal 22 novembre 2004
#########NEW################### time 0,20 sec
select famiglia, descrizione_famiglia, sum(nrprodotti) as occorrenze
from
(
select webarticoli.famiglia, webarticoli.descrizione_famiglia, count(*) as nrprodotti
from webarticoli
where webarticoli.settore = '3'
group by webarticoli.famiglia, webarticoli.descrizione_famiglia
UNION
select soci_webarticoli.famiglia, soci_webarticoli.descrizione_famiglia, count(*) as nrprodotti
from soci_webarticoli
where soci_webarticoli.idcliente = 50 and soci_webarticoli.settore = '3'
and (soci_webarticoli.codicecdr = '' or soci_webarticoli.codicecdr is NULL)
group by soci_webarticoli.famiglia, soci_webarticoli.descrizione_famiglia
UNION
select webarticoli.famiglia, webarticoli.descrizione_famiglia, (count(*) * -1) as nrprodotti
from webarticoli
inner join soci_codicinascosti
on webarticoli.codart = soci_codicinascosti.codart
where soci_codicinascosti.idcliente = 50
group by webarticoli.famiglia, webarticoli.descrizione_famiglia
)
as fake__
group by famiglia, descrizione_famiglia order by descrizione_famiglia

#########NEW###################

#########OLD################### time 17 sec

select famiglia, descrizione_famiglia , sum(occorrenze) as ArticoliPresenti
from
(

select famiglia, descrizione_famiglia, count(*) as occorrenze
from webarticoli
where settore= '3'
and (codart <> all (select codart from soci_codicinascosti where idcliente=50 and (codart <> '' and not isnull(codart))))
and (codart <> all (select codicecdr from soci_webarticoli where idcliente=50 and (codicecdr <> '' and not isnull(codicecdr)))) group by famiglia, descrizione_famiglia

UNION
SELECT soci_webarticoli.famiglia, soci_webarticoli.descrizione_famiglia, count(*) as occorrenze
FROM soci_webarticoli
INNER JOIN webarticoli
ON soci_webarticoli.CodiceCDR = webarticoli.CodArt
WHERE soci_webarticoli.IDCliente=50 and soci_webarticoli.settore = '3'
group by soci_webarticoli.famiglia, soci_webarticoli.descrizione_famiglia
union
select famiglia, descrizione_famiglia, count(*) as occorrenze
from soci_webarticoli
where IDCliente =50 and settore= '3'
and (codicecdr = '' or isnull(codicecdr))
group by famiglia, descrizione_famiglia
)
as fake_qry group by famiglia, descrizione_famiglia order by descrizione_famiglia;

#########OLD###################

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.