Aumentare la velocità del driver ODBC

Rispondi
Avatar utente

Lodovico D'Incau
Messaggi: 87 | Topic creati
Iscritto il: lun 29 giu 2020, 17:56
Ringraziato: 27 volte
Contatta:

Aumentare la velocità del driver ODBC

Messaggio da Lodovico D'Incau »

Se lavorate in cloud e lavorate quindi con diverse macchine virtuali vi sarete sicuramente accorti che se le VM "Virtual Machine" non sono vicine tra loro i tempi di lettura e scrittura possono aumentare anche di molto.

Questo è dato dal fatto che quando fate una connessione tra un sistema ed un altro utilizzando un driver ODBC esso invia dei pacchetti di dati con un limite ben definito (tendenzialmente 4mb, ma dipende dal driver che state usando..)
Approfondimento: Odbc Package Size

Quindi cosa succede se ad esempio da access dovete scrivere in SQL 120mb?
Oppure cosa succede se dovete andare a leggere da SQL una tabella di 120mb?

In entrambi i casi quando vi connetterete al database ci sarà uno scambio di dati che verrà scomposto con un numero di pacchetti di 4mb (limite del driver per singolo pacchetto).
Quindi i 120mb verranno scomposti in 30 pacchetti.

Fin qui è tutto semplice e probabilmente penserete che non c'è niente di nuovo.
Ma in realtà quando state in un sistema cloud o comunque in un sistema complesso, la comunicazione tra le varie macchine non è diretta, tendenzialmente nel mezzo ci stanno altri strumenti, ad esempio un firewall..
Questi strumenti contranno tutto quello che passa nel network, quindi analizzano i singoli pacchetti prima di rilasciarli.

Quindi in realtà se dovrete leggere o trasferire grosse mole di dati, avere una gestione dei pacchetti ridotta a soli 4mb può essere un male perchè avrete dei tempi di risposta elevati derivati da tutti questi strumenti che stanno in mezzo che controllano i pacchetti.

Ridurre il numero di pacchetti alzando questo limite potrà portarvi ad un miglioramento delle prestazioni.

Di seguito la guida di come si cambia il packagesize al driver ODBC tramite uno script SQL.
Nb. Fate attenzione, è una procedura consigliata solo a chi è esperto di SQL.
Configurare l'opzione di configurazione del server network packet size

In alternativa, se non si vogliono toccare le configurazioni del driver ODBC si possono usare tecniche alternative (per la scrittura dei dati).
Ad Esempio un BULK


Oppure l'utilizzo del BCP, per ora vi condivido la guida microsoft, a tendere farò un video dettagliato sull'uso di questo potentissimo strumento
Utilità bcp


Vuoi approfondire le tue conoscenze sul pacchetto Microsoft 365?
Vieni a scoprire i corsi gratuiti nel mio canale youtube:
https://www.youtube.com/lodovicodincau
Rispondi