Ciao a tutti,

eseguo una semplice query su ORACLE per importare le transazioni e aggiornare le giacenze, ma l'esecuzione della stessa è molto lenta (100 transazioni impiega circa 90 secondi) ... secondo la vostra esperienza da cosa può dipendere ?

vi posto la query


<%
' vista su oracle contenente le transazioni ancora da importare
SQL = "SELECT * FROM WW_POS_VENDUTO_CASSA_NO_EXP"
SET RS = Conn.execute(SQL)

Do While not Rs.EOF

Conta = Conta + 1

ARTICLE_ID = Rs("ARTICLE_ID")
CASHREG_ID = Rs("CASHREG_ID")

If Rs("QTA") <> "" Then
QTA = Replace(Trim(cleanstr(Rs("QTA"))), ",", ".")
End If
If Rs("PRICE") <> "" Then
PRICE = Replace(Trim(cleanstr(Rs("PRICE"))), ",", ".")
End If


If Rs("ARTICLE_ID") <> "" Then
SQL1 = "SELECT * FROM TB_POS_VENDUTO WHERE ARTICLE_ID = "&ARTICLE_ID&" AND CASHREG_ID = "&CASHREG_ID&""
SET RS1 = Conn.execute(SQL1)

' se nella tabella TB_POS_VENDUTO l'articolo ARTICLE_ID e CASHREG_ID esiste mi fa un UPDATE
If Not Rs1.EOF Then
SQL2 = "UPDATE TB_POS_VENDUTO SET QTA = QTA + "&QTA&", PRICE = PRICE + "&PRICE&" WHERE ARTICLE_ID = "&ARTICLE_ID&" AND CASHREG_ID = "&CASHREG_ID&" "
SET RS2 = Conn.execute(SQL2)

Else

'altrimenti mi esegue un ISERT
SQL2 = "INSERT INTO TB_POS_VENDUTO ( ARTICLE_ID, CASHREG_ID, QTA, PRICE) VALUES ( "&ARTICLE_ID&", "&CASHREG_ID&", "&QTA&", "&PRICE&") "
SET RS2 = Conn.execute(SQL2)

End If

'alla fine mi setta a 1 il campo EXPORTED
SQLEXP = "UPDATE TB_TRANSACTIONS SET EXPORTED = 1"
SET RSEXP = Conn.execute(SQLEXP)

End If


RS.MoveNext
Loop

%>

.. dimenticavo

la query viene testata su 4 server differenti ma tutti di ottima potenza e stranamente solo su 1 è veloce.