CISA FotoGallery

Statistiche

Tot. visite contenuti : 914097
Home Articoli tecnici General Uso delle Transazioni anche per velocizzare

Uso delle Transazioni anche per velocizzare

UTILIZZO DELLE TRANSAZIONI PER VELOCIZZARE LE ACTION_QUERIES

Quando si devono eseguire cicli un pò lunghi di aggiornamenti sia tramite Recordset che tramite Queries(Action) è normale che le azioni inseriscano tempi di ritardo apprezzabili e fastidiosi.
Per velocizzare ed ottimizzare queste operazioni JET ci mette a disposizione l'uso del metodo Transazionale.

In questo modo l'inserzione verrà eseguita tutta in un colpo al momento del Commit.

Nell Esempio ho ipotizzato di avere in un DB esterno(BE) una Tabella con 2 campi:
Campo1= [Numero] Intero Lungo
Campo2= [Anno] Intero Lungo

Il demo inserisce 80000 Records, per valutare la differenza di prestazioni provate a disabilitare l'uso della Transazione:

CODICE

Private Sub TestTransaction()
    On Error GoTo Err_TestTransaction
    Dim DB As DAO.Database
    Dim n As Integer
    
    Set
DB = DBEngine.OpenDatabase("C:\Programmi\MioBE.mdb")
    
    DBEngine.BeginTrans
    For x = n To 80000
        DB.Execute "INSERT INTO NomeTabella (Numero, Anno) " & _
                            "VALUES (" & x & "," & Year(now()) & ");"
    Next
    
DBEngine.CommitTrans
    MsgBox "Inseriti n. " & x - n

Exit_Here:
    DB.close
    Set DB=Nothing
    Exit Sub

Err_TestTransaction:
    DBEngine.Rollback
    MsgBox Err.Description
    Resume Exit_Here
End Sub


Alessandro Baraldi