Newsgroup: it.comp.java
Titolo: tempi JDBC

Salve a tutti,
vengo al punto: su una macchina WinNT (Pentium III, 128 MB) ho un database
Access contenente una tabella con 150000 records (destinati a salire di
numero!).
Ogni record contiene 4 campi di tipo numerico e un campo "memo".
Il problema e' questo: solo per fare una "select" della tabella (senza fare
nient'altro che leggere i valori, neanche li stampo) tramite le API JDBC
(bridge JDBC-ODBC, ovviamente), il codice impiega 1 minuto e 45 secondi.
Veramente troppo per le mie aspirazioni in tempo reale (consultazione
tramite Internet).
Secondo voi posso migliorare le scelte software? (Oracle? MySQL?, JDBC
ottimizzati?), si otterrebbero significativi vantaggi in termini di tempo?
Mille grazie a tutti,
Marco.

 ottimizzati?), si otterrebbero significativi vantaggi in termini di tempo?
Se vuoi visualizzare tutti i record no, io lavorerei sulla "selezione"
dei dati, cioe' query un po' piu' ottimizzate, ma questo dipende
anche dal server su cui lavori e dagli strumenti di cui disponi.
Davide

 anche dal server su cui lavori e dagli strumenti di cui disponi.
Scusa, cose intendi per "query ottimizzate"?
Il problema e' fortemente non lineare, penso sia difficile trovare una
soluzione ottima.
I tempi non crescono linearmente con il numero di record, e in piu' io non
so a regime quanti record dovro' scandire!
Diciamo che ci sono 2 soluzioni estreme: lavorare con select "incasinate"
oppure fare una sola select, mettere in ram e poi lavorare su strutture dati
elemantari (le dimensioni sono piccole, si tratta pur sempre di int e
String....).
La soluzione ottimale sta ovviamente in mezzo.
Ciao,
Marco.

 Marco.
Bye, Lvc@

 si tratta pur sempre di int e String....).
Oppure usare Stored Procedure e far fare il lavoro al database...
Davide

 Vedi 
http://www.soft-land.org/faq/optqry.html
Ok.....io purtroppo devo fare una barcata di OR...mi informero' sulle Stored
Procedure, ma il problema sta proprio alla base.
Le elaborazioni andrebbero fatte in "tempo reale", o, per lo meno, nei tempi
caratteristici della navigazione in rete (soprattutto evitando dei
time-out......).
Ho paura che l'impresa sia impossibile (per lo meno se si vogliono garantire
tempi decenti)
Grazie mille,
Marco.

 Ok! non so bene cosa siano le Stored Procedure,ma mi informero'!
In sostanza si tratta di prendere del codice (programma) che legge i
dati dal db e fa' dei calcoli, e ficcarlo dentro al database stesso,
in questo modo e' il database che fa' i conti e ti ritorna il
risultato. Niente recordset aperti, niente "leggo i dati e faccio
i calcoli" nel tuo programma.
Davide

 di restare sui database che gestiscono Stored Procedure.
Ok!, grazie, adesso vedo quanto si può spendere!
Ti chiedo ancora una cosa: un tipo che in 'ste cose ci naviga da tempo, mi
ha detto che e' una pazzia tenere tanti records cosi' su Access.
La probabilità di perdersi degli INSERT, degli UPDATE o, addirittura, di
ritrovarsi con il file mdb corrotto sembrerebbe altissima.
In pratica mi ha detto che Access e' fatto per gestire, al massimo, "un
negozio di alimentari" e usarlo per cose grosse e' un po' come cercare di
mettere la Treccani in un file di Word!
Tu hai un parere a proposito?
Ciao-ciao,
Marco.

 pochi altri, putroppo sono tutti abbastanza costosi...
Anche postgresql lo fa.... e piuttosto benino
-- 
David
To err is human...to really foul up requires the root password.

Tu hai un parere a proposito?
Il tipo ha perfettamente ragione.
-- 
God is Real, unless declared Integer.
ObjectZone - 
http://space.tin.it/computer/csadun

 ha scritto nel messaggio
news:9fq45i$39j$1...@ftp-news.csita.unige.it...


 adeguatamente il DB
Il bello dei ng e' che si puo' leggere tutto e il contrario di tutto ;-)
(cfr qualche post di ieri....)
Avresti mica qualche dritta da darmi per ottimizzare il db?
Un saluto,
Marco.

 ha scritto nel messaggio
news:nAoU6.5127$fG4.2...@news.infostrada.it...
