Jackomo
01-04-2008, 18:13
Salve ragazzi,
sono da poco alle prese con VB6 ed i databse. Nello specifico sto sviluppando un'applicazione che legge e scrive molto per cui la comunicazione fra VB6 ed il database è un aspetto critico. Per cominciare ho istallato MySQL 5.1 ed il suo connector ODBC. Il tutto funziona abbastanza ma con diverse prestazioni in lettura/scrittura (ho provato vari engine e per ora mi riferisco a myIsam): una query che mi ritorna 200.000 record la carico in 8 secondi (25.000 record/s) mentre a scrivere vado molto più lento: 11500 record in 6 secondi (meno di 2.000 record/s) senza chiavi primarie. Credo di eseguire la cosa nel modo corretto: faccio un for della lunghezza che mi serve e aggiungo al recordset aperto con adLockBatchOptimistic (ma tanto non cambia altrimenti) ogni volta il record che mi interessa. Poi lancio l'UpdateBatch. E' corretto/efficiente?
Come secondo aspetto vorrei capire in generale una cosa: è per caso ODBC ad essere lento? Immagino che sia una bella catena di driver da eseguire per il sistema. Ci sono per MySQL dei driver specifici per vari linguaggi? E per VB6? Questi sono veramente più efficienti?
Un mio amico dice che scriveva su un DB Access con la vecchia modalità DAO a velocità selevatissime: tipo 10.000 record al secondo (parlo sempre di record di lunghezze comparabili).
La cosa veramente figa per me sarebbe se qualcuno mi spiegasse proprio qual'è la differenza fra DAO e ADO, poi qual'è la differenza fra usare un driver specifico per la coppia db-linguaggio ed invece usare ODBC con le relative differenze di prestazioni... insomma ho un'idea un po' vaga. Chi mi aiuta a capire un po' meglio?
Grazie mille!
Giacomo.
sono da poco alle prese con VB6 ed i databse. Nello specifico sto sviluppando un'applicazione che legge e scrive molto per cui la comunicazione fra VB6 ed il database è un aspetto critico. Per cominciare ho istallato MySQL 5.1 ed il suo connector ODBC. Il tutto funziona abbastanza ma con diverse prestazioni in lettura/scrittura (ho provato vari engine e per ora mi riferisco a myIsam): una query che mi ritorna 200.000 record la carico in 8 secondi (25.000 record/s) mentre a scrivere vado molto più lento: 11500 record in 6 secondi (meno di 2.000 record/s) senza chiavi primarie. Credo di eseguire la cosa nel modo corretto: faccio un for della lunghezza che mi serve e aggiungo al recordset aperto con adLockBatchOptimistic (ma tanto non cambia altrimenti) ogni volta il record che mi interessa. Poi lancio l'UpdateBatch. E' corretto/efficiente?
Come secondo aspetto vorrei capire in generale una cosa: è per caso ODBC ad essere lento? Immagino che sia una bella catena di driver da eseguire per il sistema. Ci sono per MySQL dei driver specifici per vari linguaggi? E per VB6? Questi sono veramente più efficienti?
Un mio amico dice che scriveva su un DB Access con la vecchia modalità DAO a velocità selevatissime: tipo 10.000 record al secondo (parlo sempre di record di lunghezze comparabili).
La cosa veramente figa per me sarebbe se qualcuno mi spiegasse proprio qual'è la differenza fra DAO e ADO, poi qual'è la differenza fra usare un driver specifico per la coppia db-linguaggio ed invece usare ODBC con le relative differenze di prestazioni... insomma ho un'idea un po' vaga. Chi mi aiuta a capire un po' meglio?
Grazie mille!
Giacomo.