Newsgroup: it.comp.lang.delphi
Titolo: ma ADO è priprio così lento????

ciao ho fatto un procedurina che abre una tabella e scrivre il valore
booleano true in un campo. La tabella ha circa 2900 record (non tanta merce)
ho provato prima con i componenti bde ovvero un tdatabase e un a ttable
usando un alias, risultato circa 10 secondi per fareil lavoro, ho fatto la
stessa cosa usando conponenti ado e sono 'miracolosamente' passato a 1
minuto.....
esiste qualche trucco!!!!! per andare più veloce con ado????
o devo recitare unìaltra prece per lo zio Bill???
Ciao Ettore


Si, usa istruzioni SQL.
--
Roal Zanazzi

 wrote in message
news:YFVv5.4560$0C2....@news.infostrada.it...

Incuriosito dai tuoi risultati, ho fatti un programma che si connette in
vari modi a uno stesso data base di access contetente una tabella di 500.000
record formati da un unico campo stringa senza indice, e ho provato ad
aggiornare tutti i record.
Ecco i risultati:
  Driver                                                Componente
tempo
Ole db provider for ODBC driver        AdoTable
errore
Ole db provider for ODBC driver        AdoQuery                      59
secondi
Ole db provider for Jet 4.0 driver        AdoTable
errore
Ole db provider for Jet 4.0 driver        AdoQuery                        36
secondi
BDE con driver nativo MSACCESS    TTable                            2 minuti
56 secondi
BDE con driver nativo MSACCESS    TQuery                           24
secondi
Ovviamente il test è limitato, però i risultati possono essere
significativi.
Ruggero
Se è Microsoft non funziona o va più piano.

Provai ADO su vb6 appena usci'.
feci i 3 test:
DAO
ODBC
ADO
il tutto con Access.
Tra parentesi,non so come si faccia ad usare access come databse: fa schifo.
Quella limitazione di 32 tra indici e relazioni sembra fatta apposta per
costringerci ad usare MsSql.
Ma io, se dovessi usare un db tosto per i miei programmi client/server passo
ad Oracle.
E dico ciao a zio Billy.
I 3 test:
Dao   : lento
Odbc: +lento
ADO : lento^3...!
Dimenticavo....
Tratto direttamente dalla guida di Vb6:
"perchè utilizzare ADO? Innanzitutto perche' ADo è molto veloce"
AS


minuto.....
Probabilmente perche' hai usato ADO con un alias ODBC.
E' una tecnica diffusa e sconsigliabile.
ADO va usato con gli OLE DB provider.
ODBC e' veloce nel fetching massiccio, ma e' molto lento per query
particolari.
--
Andrea Laforgia (UIN 87230455)
----------------------------------------------------------
Non scrivetemi per e-mail, se non richiesto espressamente.
No replies in private e-mail, unless explicitly requested.
----------------------------------------------------------

Avevo fatto una prova simile un po' di tempo fa. Una semplice select * from
nometabella, su un archivio MS SQl Server 7 con circa 150.000 record dava un
tempo di risposta quasi immediato con un Tquery su BDE + Sql Links, mentre si
doveva aspettare parecchi secondi con il componente AdoQuery.
Ettore ha scritto:


doveva aspettare parecchi secondi con il componente AdoQuery.
Usavi un alias ODBC con ADO ?


Non usavo un Alias ODBC
Aggiungo:
in questi giorni ho fatto alcune prove su BDE,ADO,SQL server e Oracle.
Le prove che ho fatto non sono certo conclusive, in fondo la connessione
a un DB e l'esecuzione di una semplice query su pochi record non bastano
per valutare le prestazioni di un sistema di accesso ai dati, ma i
risultati sono i seguenti. (che mi piacciano o no)
Stabilire connessione + eseguire select * from tabella con 8101 record
(abbastanza pochi), a partire dal peggior risultato ho avuto:
1- Oracle + ADO con driver oledb di oracle (1000-1300 millisecondi)
2- Oracle + BDE + SQL links (900-1200 millisecondi)
3- SQL server + ADO con driver oledb di Microsoft (100-250 millisecondi)
4- SQL server + BDE + SQL links (70-150 millisecondi)
In altre parole sembrerebbe che oracle sia una lumaca rispetto a SQL
server. Anche se fosse davvero sempre cosě ciň comunque non basta per
dire che SQL server č meglio di Oracle!