ciao, ho importato tutto il db da access a mysql ed utilizzo una query per aggiornare i quantitativi dei prodotti nelle singole categorie, le categorie sono 2773, ed i prodotti circa 45000.

ora in access la stessa query ci impiega circa 60 secondi mentre in mysql dopo 10 minuti è ancora impiantata alla categoria n° 900 circa...

c'è una spiegazione?
perchè la stessa query su mysql gira così lentamente (fino ad impiantarsi)?

questa è la query:
codice:
'azzero i valori di categorie
SQL = " UPDATE categorie SET quantita = 0, prezzomin = '0', prezzomax = '0' "
Set RS = Conn.Execute(SQL)

SQL = " SELECT id_mc, id_sc, id_c FROM categorie WHERE visibile = 'S' "
Set RS = Conn.Execute(SQL)

Do While Not RS.Eof
	
	SQLinf = ""
	quantita = 0
	PrezzoMin = ""
	PrezzoMax = ""
	
	'contro quanti prodotti ci sono in questa categoria
	SQLinf = " SELECT COUNT(*) AS Tot FROM prodotti " & _
			 " WHERE id_mc = "& RS("id_mc") &" AND id_sc = "& RS("id_sc") &" AND id_c = "& RS("id_c") &" AND cancellato = 'N' "
	Set RSinf = Conn.Execute(SQLinf)
	quantita = RSinf.Fields("Tot").Value
	RSinf.Close
	
	If quantita > 0 Then
	
		'ordino i prodotti di questa mcategoria per prezzo e prendo il primo valore (prezzomin)
		SQLinf = " SELECT prezzo FROM prodotti " & _
			" WHERE id_mc = "& RS("id_mc") &" AND id_sc = "& RS("id_sc") &" AND id_c = "& RS("id_c") &" AND cancellato = 'N' ORDER BY prezzo ASC "
		Set RSinf = Conn.Execute(SQLinf)
		PrezzoMin = Cstr(RSinf("prezzo"))
		RSinf.Close
		
		'ordino i prodotti di questa mcategoria per prezzo e prendo l' ultimo valore (prezzomax)
		SQLinf = " SELECT prezzo FROM prodotti " & _
			" WHERE id_mc = "& RS("id_mc") &" AND id_sc = "& RS("id_sc") &" AND id_c = "& RS("id_c") &" AND cancellato = 'N' ORDER BY prezzo DESC "
		Set RSinf = Conn.Execute(SQLinf)
		PrezzoMax = Cstr(RSinf("prezzo"))
		RSinf.Close
		
		'aggiorno la categoria
		SQLagg = " UPDATE categorie SET " & _
			" quantita = "& quantita &", prezzomin = '"& PrezzoMin &"', prezzomax = '"& PrezzoMax &"' " & _
			" WHERE id_mc = "& RS("id_mc") &" AND id_sc = "& RS("id_sc") &" AND id_c = "& RS("id_c")
		Set RSagg = Conn.Execute(SQLagg)
		
		ContaCat = ContaCat + 1
		
	End If
	
  RS.MoveNext
Loop
grazie, fulvio.