Query lentissime tra Access e Sql Server

di il
8 risposte

Query lentissime tra Access e Sql Server

Buongiorno,

sono nuovo e ringrazio chi potrà aiutarmi… 

Ho creato dei file access che uso per creare query tra varie tabelle di sql. Fino a qualche giorno fa usavo ODBC e Mysql, ora abbiamo cambiato il server e usiamo SQL Server. Da quel momento solo sul mio pc, su quello dei miei colleghi tutto funziona bene, è diventato lentissimo solo con i dati da sql, per quelli che son rimasti su Mysql tutto funziona normalmente…

Tutti i pc sono virtuali con pari prestazioni, anzi il mio ha un po' di processore in più. Comunque ho aumentato lo spazio su disco, monitorato le risorse, e tutto è nella norma.

Ho anche provato a installare una nuova versione di Office, da 2019 a versione 365, ma anche con questo nulla!

Qualcuno ha qualche soluzione?
Grazie a tutti!!

8 Risposte

  • Re: Query lentissime tra Access e Sql Server

    Sei sicuro che i pc dei tuoi colleghi accedono a SQL Server e non ancora a MYSQL?

  • Re: Query lentissime tra Access e Sql Server

    Si, sicuro, mysql contiene i dati vecchi, per avere quelli aggiornati bisogna prenderli dal nuovo sql. Oltrettutto anch'io quando ho bisogno di usare il file lo faccio da un notebook…

  • Re: Query lentissime tra Access e Sql Server

    Allora devi investigare. 

    Consiglio : prova a fare qualche esperimento accedendo DIRETTAMENTE dal tuo pc a SQL Server con Management Studio o altro client per accedere ai dbms, e controlla che la query incriminata sia lenta anche in questo modo.

    valuta la quantità di dati trasferita (100 record? 100 MILIONI di record?) .

    Di piu' non si puo' dire, al momento. 

  • Re: Query lentissime tra Access e Sql Server

    L'istanza di SQL Server è locale nel tu PC o è su un server? In questo caso potresti avere una latenza causata dalla rete.

    Per verficare invece l'impatto della query su SQL Server puoi usare lo strumento SQL Server Profiler che trovi nel menu strumenti di SQL Server Management Studio 

  • Re: Query lentissime tra Access e Sql Server

    Le query vengono eseguite sul server oppure vengono risolte dal motore di Access ?

    Le query hanno join tra tabelle e/o riferimenti a variabili locali (esempio a campi di maschere Access)?

    Le query sono parametriche oppure il predicato SQL è costruito dinamicamente?

    Puoi mostrare una query che risulta essere lenta?

  • Re: Query lentissime tra Access e Sql Server

    24/11/2023 - Toki ha scritto:


    L'istanza di SQL Server è locale nel tu PC o è su un server? In questo caso potresti avere una latenza causata dalla rete.

    Per verficare invece l'impatto della query su SQL Server puoi usare lo strumento SQL Server Profiler che trovi nel menu strumenti di SQL Server Management Studio 

    Allora, le istanze sono su server, non in locale, la latenza può anche esserci, ma non da far durare minuti una query… Proverò con lo strumento che mi hai consigliato.

    24/11/2023 - max.riservo ha scritto:


    Le query vengono eseguite sul server oppure vengono risolte dal motore di Access ?

    Le query hanno join tra tabelle e/o riferimenti a variabili locali (esempio a campi di maschere Access)?

    Le query sono parametriche oppure il predicato SQL è costruito dinamicamente?

    Puoi mostrare una query che risulta essere lenta?

    Le query sono in locale, apro il file access e ci sono i collegamenti alle tabelle di sql server.

    Le query fanno join tra tabelle nel sql server e anche in tabelle locali, se ho capito bene la domanda. Comunque mi basta anche aprire il collegamento della tabella in access per vedere la lentezza che c'è, non solo lanciare la query. Comunque anche dopo aperta mi basta cercare di filtrare i dati perchè si blocchi un'altra volta.

    Query parametriche vuol dire se ci sono filtri particolari? Non so esattamente cosa vuol dire, scusa. 

    Per mostrare intendi uno screenshot?

  • Re: Query lentissime tra Access e Sql Server

    24/11/2023 - Mauriziofavre ha scritto:


    Le query fanno join tra tabelle nel sql server e anche in tabelle locali, se ho capito bene la domanda. 

    Questo significa che per essere risolte (a livello di join) le tabelle SQL devono essere scaricate completamente in locale e poi dopo vengono abbinate con quelle locali … tempi di esecuzione spaventosi sono garantiti (anche con pochi records).

    24/11/2023 - Mauriziofavre ha scritto:


    Query parametriche vuol dire se ci sono filtri particolari? Non so esattamente cosa vuol dire, scusa. 

    Sono query con parametri ovvero le query sono salvate con la definizione dei parametri e quando vengono eseguite non presentano il problema dell'SQL injection e non esiste neanche il problema di errata conversione di tipo (riferito ai parametri).

    24/11/2023 - Mauriziofavre ha scritto:

    Per mostrare intendi uno screenshot?

    Mostra il predicato SQL di una query problematica. Se la query è creata tramite codice mostra l'esatto valore che contiene la stringa che utilizzi.

    Se la query è salvata nel db (Access) mostra lo screenshot (o l'equivalente SQL) …

  • Re: Query lentissime tra Access e Sql Server

    Allora ho risolto in altro modo. Provando ad accedere allo stesso PC con altro utente ho visto che tutto andava bene, quindi è a livello impostazioni utente in locale, il problema.

    Ho eliminato l'utente e successivamente ricreato, in questo modo tutto si è risolto e le query sono velocissime!!

    Grazie a tutti del supporto.

Devi accedere o registrarti per scrivere nel forum
8 risposte