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.

Rispondi quotando