PDA

View Full Version : [VB6][SQL] chiarificazione generale: figo ma non capisco ;)


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.

MarcoGG
02-04-2008, 09:11
è 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?


VB6 e MySQL ? Mmm...
Dalle domande che fai pare tu non voglia assolutamente considerare l'idea di altri DB... Magari di casa MS. E provare SQL Server, Access ?
Tanto se usi VB6, sempre in ambiente Microsoft devi stare, no ?
Non so... Queste "prove di velocità" non le ho mi fatte... E comunque MySQL l'ho sempre e solo usato in tandem con PHP ( classico server WAMP... ).


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?


Io DAO lo uso solo se espressamente costretto dalle circostanze. Preferisco ADO 1000 volte. Ma non ho nessuna voglia di impelagarmi in discussioni fiume, come già mi è capitato in privato, con i soliti "nostalgici" che "si stava meglio quando si stava peggio"... ;)
In soldoni ADO è il "nuovo" ( e ADO.NET è il "nuovissimo" ), e DAO è il vecchio.

Se usi Access, prova ADO+Jet. Lascia stare ODBC...

E' chiaro che se usi un driver generico, come dici tu stesso, rischi di perdere in prestazioni rispetto ad un driver specifico per una data coppia Linguaggio-RDBMS... Ma qui lo dico, e qui lo nego... :D