ciao, forse da abitudini sbagliate scrivo male il codice...

se posso vi posto una pagina dove prelevo da vari db dei dati per fare una classifica.

il problema è che oltre ad avere dei risultati errati (ma questo lo vedremo dopo) ci mette un tempo esagerato per eseguire la pagina (tipo mezzo minuto se non +) quindi non so se dare colpa al fatto che scrivo male il codice o se la colpa sta nel fatto che le connessioni sono tante ecc ecc!

codice:






<%
response.Buffer = true
'cancello i record nella tabella topmese
Dim rs_canc
Set rs_canc = Server.CreateObject("ADODB.Command")
rs_canc.ActiveConnection = MM_users_STRING
rs_canc.CommandText = "DELETE * FROM TOPMESE"
rs_canc.Execute
rs_canc.ActiveConnection.Close

Set rs1 = Server.CreateObject("ADODB.Recordset")
SQL1 = "SELECT * FROM mobyle"
rs1.open SQL1, MM_users_STRING, 0,3

Set topm = Server.CreateObject("ADODB.Recordset")
SQLm = "SELECT * FROM TOPMESE"
topm.open SQLm, MM_users_STRING, 0,3



do While NOT rs1.EOF

'venduto
Set rsv = Server.CreateObject("ADODB.Recordset")

SQLv = "SELECT SUM(ITEMS_TOTAL) as TOT FROM ORDERS WHERE billing_notes LIKE '%-" & rs1.Fields.Item("store").Value & "-%' AND ORDER_DATE BETWEEN 01/07/2006 AND 31/07/2006"
rsv.open SQLv, MM_conn_db_STRING, 0,3
venduto = rsv.Fields.Item("tot").Value
venduto = venduto*25/100
rsv.close()
set rsv=NOTHING

'punteggio
set rspunti =  Server.CreateObject("ADODB.Recordset")
SQLpunti = "SELECT punti FROM mobyle WHERE store = '" & rs1.Fields.Item("store").Value & "'"
rspunti.open SQLpunti, MM_users_STRING, 0,3
punti = rspunti.Fields.Item("punti").Value
punti = punti*50/100
rspunti.close()
set rspunti=NOTHING

'RICHIESTE MOBYLE
set rs4 = server.CreateObject("adodb.recordset")
strSQL4="SELECT COUNT (richieste_info.id) AS trippa FROM richieste_info WHERE codstore='"&rs1.Fields.Item("store").Value&"' AND visto = false "
rs4.open strSQL4, MM_store_STRING, 0, 3
rm = rs4("trippa")
rs4.close()
set rs4=NOTHING


'RICHIESTE AZIENDE
set rs6 = server.CreateObject("adodb.recordset")
strSQL6="SELECT COUNT (utenti.id) AS aziende_ricevute FROM utenti WHERE motivazioni = '"&rs1.Fields.Item("store").Value&"' AND visto = false "
rs6.open strSQL6, conn_aziende, 0, 3
ra = rs6("aziende_ricevute")
rs6.close()
set rs6=NOTHING


'totale richieste
richieste = rm+ra*25/100
response.Write(richieste)
'TOTALE COMPLESSIVO
totcomp = venduto+punti+richieste

topm.AddNew
topm("store") = (rs1.Fields.Item("store").Value)
topm("totale") = venduto
topm("punti") = punti
topm("richieste") = richieste
topm("totale") = totcomp
topm.Update


rs1.MOVENEXT
LOOP


rs1.close()
set rs1=NOTHING

topm.close()
set topm=NOTHING

MM_store_STRING.close()
set MM_store_STRING=NOTHING

conn_aziende.close()
set conn_aziende=NOTHING
%>