Query aggiornamento lenta

di il
4 risposte

Query aggiornamento lenta

Ciao,
ho una query di aggiornamento lenta
parliamo di 22mila record
voglio aggiornare un campo

pesco da una funzione pubblica la data del file da un percorso memorizzato in tabella

Function UltimaData(n As String) As Date
Dim strPath As String
Dim ParametroFile As String

    ParametroFile = DLookup("nomefile", "q_data_file", "nomefile='" & Replace(n, "'", "''") & "'")
        
    strPath = DLookup("percorso", "q_data_file", "nomefile='" & Replace(n, "'", "''") & "'")
    UltimaData = FileDateTime(strPath + ParametroFile)

End Function
e aggiorno la tabella con l'informazione della data con una query di aggiornamento
UPDATE tblDirectory INNER JOIN q_data_file ON (tblDirectory.nomefile = q_data_file.nomefile) AND (tblDirectory.percorso = q_data_file.percorso) SET tblDirectory.data_ultima_mod = [VisualizzaData];
l'aggiornamento dura un 4-5 minuti

qualche spunto per velocizzare?

4 Risposte

  • Re: Query aggiornamento lenta

    Non è tanto un argomento a me favorito, ma (vado a naso)

    ocrot ha scritto:


    pesco da una funzione pubblica la data del file da un percorso memorizzato in tabella
    non sarà mica questo che rallenta il tutto? Sempre meglio prelevare dati dal di dentro del database (che sia una variabile/costante, un valore in un campo…).
  • Re: Query aggiornamento lenta

    Non ho capito quella Funzione cosa c'entra con la Query.... se il parametro [VisualizzaData] lo metti tu a mano non ha impatto, al contrario se tu avessi inserito nella Query la chiamata alla Funzione sarebbe stato un massacro...
    Come esegui la Query...? Come passi il Parametro...?

    Per velocizzare intanto inizia a verificare che i 2 Campi, Oggetto del JOIN tra le 2 Tabelle siano INdicizzati...
  • Re: Query aggiornamento lenta

    @Alex ha scritto:


    Non ho capito quella Funzione cosa c'entra con la Query.... se il parametro [VisualizzaData] lo metti tu a mano non ha impatto, al contrario se tu avessi inserito nella Query la chiamata alla Funzione sarebbe stato un massacro...
    Come esegui la Query...? Come passi il Parametro...?

    Per velocizzare intanto inizia a verificare che i 2 Campi, Oggetto del JOIN tra le 2 Tabelle siano INdicizzati...
    si ho inserito nella query la chiamata alla funzione
    SELECT tblDirectory.percorso, tblDirectory.nomefile, tblDirectory.ELSAY, UltimaData([NomeFile]) AS VisualizzaData
    FROM tblDirectory;
    
    i campi sono indicizzati

    in pratica ho una tabella dove sono memorizzati il percorso ed il nome del file, ho un campo vuoto della stessa tabella dove vorrei memorizzare in locale la data del file (campo della tabella data_ultima_mod -- faccio una query della stessa tabella e mi creo una colonna che chiamo VisualizzaData che richiama la funzione -- con un aggiornamento scrivo il campo data_ultima_mod)
  • Re: Query aggiornamento lenta

    Sei certo che serva quella Funzione, non puoi fare una Query ed inserire le Tabelle ed il Campo necessario in JOIN...?
Devi accedere o registrarti per scrivere nel forum
4 risposte