Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    ASP: Query Update/insert lenta su ORACLE

    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.
    Pippo Giacalone
    giacalone@tin.it

  2. #2
    non so i tuoi skill, ma immagino che tutto quel giro possa essere sostituito agevolmente da una SP su oracle...

  3. #3
    se puo essere fatto dentro oracle non so ... non ho le competenze per farlo.

    ..... volevo però sapere se il codice che ho postato è giusto o può essere ottimizzato.
    Pippo Giacalone
    giacalone@tin.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.