 |
AppletTalk.com Java discussions newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Raffaele Castagno Guest
|
Posted: Thu May 27, 2004 1:52 pm Post subject: Pattern dao: più query o query più complesse? |
|
|
Questione:
ho un DAO che deve estrarre da DB dei dati presenti su diverse tabelle.
Per ogni tabella c'è un ValueObject, i quali vengono raggruppati per
ottenere il VO finale.
E' meglio fare tanti metodi che estraggano i record da una sola tabella, e
richiamarli in sequenza nel metodo del dao che recupera il VO principale
(tante query piccole), oppure comporre un'unica grande query che tira giu
tutto (appunto, un'unica grossa query, con tante join).
Se può servire, sono su JDK1.3.1, ejbcontainer BEA Weblogic 7, server DB
Oracle8.
Grazie
Raffaele
--
Raffaele Castagno
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad [email]abuse (AT) newsland (DOT) it[/email]
|
|
| Back to top |
|
 |
cccc Guest
|
Posted: Thu May 27, 2004 2:12 pm Post subject: Re: Pattern dao: più query o query più complesse? |
|
|
Entrambe le soluzioni hanno dei vantaggi:
a) Un'unica query ti permette di interrogare il db una sola volta con ovvi
vantaggi di velocità.
b) Più query distinte facilitano la riusabilità del codice.
Credo che la scelta debba essere contestualizzata alla criticità della
procedura .
Ciao,
CC
"Raffaele Castagno" <aragorn_832000 (AT) yahoo (DOT) SEAL.it> ha scritto nel messaggio
news:c94rqk$30s$1 (AT) news (DOT) newsland.it...
| Quote: | Questione:
ho un DAO che deve estrarre da DB dei dati presenti su diverse tabelle.
Per ogni tabella c'è un ValueObject, i quali vengono raggruppati per
ottenere il VO finale.
E' meglio fare tanti metodi che estraggano i record da una sola tabella, e
richiamarli in sequenza nel metodo del dao che recupera il VO principale
(tante query piccole), oppure comporre un'unica grande query che tira giu
tutto (appunto, un'unica grossa query, con tante join).
Se può servire, sono su JDK1.3.1, ejbcontainer BEA Weblogic 7, server DB
Oracle8.
Grazie
Raffaele
--
Raffaele Castagno
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad [email]abuse (AT) newsland (DOT) it[/email]
|
|
|
| Back to top |
|
 |
Raffaele Castagno Guest
|
Posted: Thu May 27, 2004 2:15 pm Post subject: Re: Pattern dao: più query o query più complesse? |
|
|
cccc ha scritto:
| Quote: | Credo che la scelta debba essere contestualizzata alla criticità della
procedura .
|
Devo popolarci un elenco, nulla di particolarmente critico.
Raffaele
--
Raffaele Castagno
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad [email]abuse (AT) newsland (DOT) it[/email]
|
|
| Back to top |
|
 |
cccc Guest
|
Posted: Thu May 27, 2004 2:32 pm Post subject: Re: Pattern dao: più query o query più complesse? |
|
|
Se l'elenco è molto grosso (o tenderà ad esserlo in futuro) l'utilizzo di 2
o più query per ogni record potrebbe rallentare molto la tua procedura.
Nel dubbio ti conviene optare per un'unica query.
Ciao,
CC
"Raffaele Castagno" <aragorn_832000 (AT) yahoo (DOT) SEAL.it> ha scritto nel messaggio
news:c94t67$h3n$1 (AT) news (DOT) newsland.it...
| Quote: | cccc ha scritto:
Credo che la scelta debba essere contestualizzata alla criticità della
procedura .
Devo popolarci un elenco, nulla di particolarmente critico.
Raffaele
--
Raffaele Castagno
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad [email]abuse (AT) newsland (DOT) it[/email]
|
|
|
| Back to top |
|
 |
Raffaele Castagno Guest
|
Posted: Thu May 27, 2004 2:43 pm Post subject: Re: Pattern dao: più query o query più complesse? |
|
|
cccc ha scritto:
| Quote: | Se l'elenco è molto grosso (o tenderà ad esserlo in futuro) l'utilizzo di 2
o più query per ogni record potrebbe rallentare molto la tua procedura.
Nel dubbio ti conviene optare per un'unica query.
|
L'elenco risultante non dovrebbe superare l'ordine delle centinaia di
record.
Ci sono alcune piccole tabelle di decodifica da poche decine di record,
una tabella nell'ordine dei 100000 record e altre due nell'ordine del
milione di record.
Consigli?
Raffaele
--
Raffaele Castagno
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad [email]abuse (AT) newsland (DOT) it[/email]
|
|
| Back to top |
|
 |
cccc Guest
|
Posted: Thu May 27, 2004 2:53 pm Post subject: Re: Pattern dao: più query o query più complesse? |
|
|
Fatti un vista sulla base dati, con tutti i dati che ti servono.
A quel punto usa il DAO e il VO di questa nuova vista.
I vantaggi sono:
a) la costruzione dei record da pubblicare avviene nel db
b) lanci una sola query
I difetti:
a) nel data base avrai ridondanza di dati. Anche se è improprio parlare di
ridondanza perchè trattasi di una vista e non di una tabella vera e propria.
Ciao,
CC
"Raffaele Castagno" <aragorn_832000 (AT) yahoo (DOT) SEAL.it> ha scritto nel messaggio
news:c94upm$2gf$1 (AT) news (DOT) newsland.it...
| Quote: | cccc ha scritto:
Se l'elenco è molto grosso (o tenderà ad esserlo in futuro) l'utilizzo
di 2
o più query per ogni record potrebbe rallentare molto la tua procedura.
Nel dubbio ti conviene optare per un'unica query.
L'elenco risultante non dovrebbe superare l'ordine delle centinaia di
record.
Ci sono alcune piccole tabelle di decodifica da poche decine di record,
una tabella nell'ordine dei 100000 record e altre due nell'ordine del
milione di record.
Consigli?
Raffaele
--
Raffaele Castagno
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad [email]abuse (AT) newsland (DOT) it[/email]
|
|
|
| Back to top |
|
 |
Vincent Vega Guest
|
Posted: Fri May 28, 2004 7:58 am Post subject: Re: Pattern dao: più query o query più complesse? |
|
|
Raffaele Castagno wrote:
| Quote: | E' meglio fare tanti metodi che estraggano i record da una sola tabella, e
richiamarli in sequenza nel metodo del dao che recupera il VO principale
(tante query piccole), oppure comporre un'unica grande query che tira giu
tutto (appunto, un'unica grossa query, con tante join).
|
A mio parere, è corretto che il DAO valueObject rappresenti il resultset
di una query. Quindi il VO principale dovrebbe corrispondere, in linea
di principio, al risultato di un unica query.
Il limite dovrebbe essere (a mio avviso) il grado di ottimizzazione che
riesci ad ottenere per la query: se ad esempio la query è tale per cui
non riesci ad ottenere accessi ad indici corretti e performance
adeguate, allora è il caso di "spezzare" il reperimento dati sul database.
Per il resto credo sia il caso di far lavorare un po' l'ottimizzatore di
oracle :-)
|
|
| Back to top |
|
 |
Raffaele Castagno Guest
|
Posted: Fri May 28, 2004 8:39 am Post subject: Re: Pattern dao: più query o query più complesse? |
|
|
Vincent Vega ha scritto:
| Quote: | A mio parere, è corretto che il DAO valueObject rappresenti il resultset
di una query. Quindi il VO principale dovrebbe corrispondere, in linea
di principio, al risultato di un unica query.
|
Mi sfugge il concetto...
DAO, VO e VO aggregator sono tre pattern differenti...
io ho il DAO che accede al DB, i VO che contengono i dati, e il VO
aggregator che raggruppa vari VO per restituire il risultato desiderato...
Nello specifico ho 5 VO che contengono ogniuno i dati di una tabella, e
nel DAO ho i singoli metodi che estraggono i dati da quelle tabelle usando
i suddetto VO.
Il mio dilemma è: per comporre il VO aggregator, uso i singoli metodi (che
comunque devo gia creare perchè mi servono altrove) oppure creo un nuovo
metodo che fa un'unica grossa query?
Raffaele
--
Raffaele Castagno
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad [email]abuse (AT) newsland (DOT) it[/email]
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|