Newsgroup: it.comp.lang.visual-basic
Titolo: Velocità di recupero dei campi da un DB Oracle

Ho sviluppato un'applicazione in VB5 che lavora con un Database Oracle 7.3.
Mi sono accorto che il tempo impiegato per recuperare il contenuto dei campi
dai record è di gran lunga SUPERIORE  a quello occorrente per fare la stessa
cosa con un DB Access.
Mi spiego meglio. Dopo aver aperto una tabella, tramite un ciclo comincio a
scorrere i record della stessa, leggendo il valore di ciascun campo,
copiandolo in una variabile. Ho fatto delle prove comparative su tabelle di
una certa lunghezza prefissata (5 campi per 1000 record) sia con Oracle che
con Access.
Risultato:
- tempo impiegato da VB/Access: qualche frazione di secondo.
- tempo impiegato da VB/Oracle: quasi un minuto.
Avete riscontrato anche voi questa stranezza? Secondo voi a cosa è dovuta
questa differenza di velocità?
Un grazie anticipato a chiunque voglia rispondermi.

Entrambi ODBC ?

 writes:
M> - tempo impiegato da VB/Access: qualche frazione di secondo.
M> - tempo impiegato da VB/Oracle: quasi un minuto.
M> Avete riscontrato anche voi questa stranezza? Secondo voi a cosa è dovuta
M> questa differenza di velocità?
Come  sta la  rete ?   La macchina  che porta  Oracle e`  carrozzata a
sufficenza ?  Hai definito  gli indici in  Oracle ? Hai  aggiornato le
statistiche  degli indici  dopo un  caricamento massivo  ed  in blocco
(i.e. una import) ?
-- 
Gian  | main(){printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);}
Uberto|                        David Korn, 1987 ioccc best one liner 
Lauri |-------------------------------------------------------------------
(aka saint) >>Vedere X-Nospam nell'header - See X-Nospam field in Header<<


No, solo Oracle.

Hai usato DAO?
Dao era velocissimo con Access (é il motore di access...) e molto piů lento
con gli altri...
                    Ciao
                                                    Allanon

 (i.e. una import) ?
Questo non l'ho mai fatto. Sarebbe equivalente ad una riorganizzazione degli
indici? In ogni caso gli indici dovrebbero velocizzare l'esecuzione di
query. Io apro una semplice tabella e la scorro dall'inizio.
N.B.: se scorro semplicemente la tabella senza leggere alcun campo, è una
scheggia.
Grazie.


Con Access ho dichiarato una variabile MyDB as DataBase e poi ho aperto
normalmente con
set MyDB=workspaces(0).opendatabase(percorso_e_nomefile)
set MyRecordset=MyDB.openrecordset(ComandoSql, dbOpenTable)
Con Oracle, le variabili MySession MyDatabase e MyDynaset sono state
dichiarate come Object.
Successivamente i tre oggetti sono stati aperti in questo modo:
Set MySession = CreateObject("OracleInProcServer.XOraSession")
Set MyDatabase = MySession.DbOpenDatabase(DbName, UserName & "/" & PassWord,
&H2&)
Set MyDynaset = MyDatabase.DbCreateDynaset(CommandoSql, 0&)
Per la cronaca: Oracle č lento solo se leggo i campi dei record, infatti se
scorro semplicemente i record č velocissimo.

 scorro semplicemente i record è velocissimo.
Mhmhhh...
Oracle é sulla tua macchina o viaggi via rete?
...e ancora...
Prova ad usare ADO...
                Ciao
                                Allanon

 200MHz con 64MB (questo offre il convento)
:))))))))))))))))))))))))
Oracle é una Ferrari...
Ma la ferrari beve... se non le dai benzina... non vai da nessuna parte...
Con una macchina simile puoi usare -AL-PIU'- MySQL senza supporto alle
transazioni OVVIAMENTE con Linux...
                    Ciao
                                        Allanon

 Prova ad usare ADO...
ADO non l'ho mai usato. Si può fare con VB5?
Grazie, comunque.
Mimmo.

 wrote in message
a1mg84$rh65a$1...@ID-67444.news.dfncis.de...

Sono daccordo, comunque il server che ti ho descritto è servito solo per lo
sviluppo. Il vero server è un P2 800MHz con 256 MB, ma non ho potuto fare
molte prove perchè non ce l'abbiamo in sede.
Grazie.
Mimmo.


In verità il server deve gestire un unica istanza di DB Oracle per 4-5
client al massimo, non ci sono altri progetti da gestire.
Ciao.

> ADO non l'ho mai usato. Si può fare con VB5?
Ohhh yesss!!!!
                Ciaooo
                                        Allanon