View Full Version : SQL JOIN
DEvo effettuare il join tra + di due tabelle!
Qual'è la sintassi + giusta per avere un SQL ottimizzato soprattutto in quantità di tempo dato che la mole di dati estratti potrebbe essere enorme?
Fenomeno85
29-03-2004, 17:58
tabella inner join tabella2 on chiave = chiave_esterna
questa non ti va bene?
~§~ Sempre E Solo Lei ~§~
Si lo conosco il join come lo hai presentato tu ma io lo effettuo su tre tabelle!
Funziona! Ma....quello che vorrei sapere è : che JOIN è meglio usare per effettuare una rapida esecuzione (parlo sempre in termine di dati/tempo) del codice ?
A volte potre iestrarre pochi dati al massimo qualche centinaio di record ma a volte mi capita di fare elaborazioni su migliaia di record e il DB (SQL server) non riesce mai a rispondere và sempre in time out!
Grazie!
The March
30-03-2004, 09:42
Originariamente inviato da prodan
Si lo conosco il join come lo hai presentato tu ma io lo effettuo su tre tabelle!
Funziona! Ma....quello che vorrei sapere è : che JOIN è meglio usare per effettuare una rapida esecuzione (parlo sempre in termine di dati/tempo) del codice ?
A volte potre iestrarre pochi dati al massimo qualche centinaio di record ma a volte mi capita di fare elaborazioni su migliaia di record e il DB (SQL server) non riesce mai a rispondere và sempre in time out!
Grazie!
anche a me capita...
un zo che dire...
a me impiegava circa 2 minuti e mezzo quando facevo partire la query dal client sopratutto perchè usavo un sacco di funzioni... però non mi dava il time out..
il time out me lo dava quando utilizzavo la query in vb.net...
ho risolto il problema associando il risultato della query ad un oggetto di tipo datatable... poi da li mi prendo tutti i valori..
cmq
select *
from tabella1 a
LEFT JOIN tabella2 b on a.t1_id=b.t2_id
left join tabella3 c on c.t3_id=b.t2_cod
ho sempre fatto un qaualcosa del genere...
Ho provato left join , right sia interni che esterni o usato il vecchio standard ANSI ma quando si parla di troppi dati nulla da fare!
Premetto uso VB6 con Sp5 e DB SQLserver 2000
Posso capire che una query fatta da VB dia qualche problema ma fatta da SQL manager NO!
A volte per fare delle elaborazioni ho dovuto spezzare le richieste in + query evitando il time out però aumentando le richieste aumenta notevolmente il tempo! tipo 1 ora e mezza per estrarre pochi dati mentre i clienti finali ne tireranno su almeno 4 o 5 volte tanto!
Forse stiamo arrivando al limite dell'usabilità del linguaggio!
Con i file i tempi erano notevolmente ridotti! Però per effettuare gli ordinamenti è un disastro!
Ciao
Fenomeno85
30-03-2004, 13:15
si ma i join left, right e inner fanno cose differenti.
~§~ Sempre E Solo Lei ~§~
The March
30-03-2004, 13:16
Originariamente inviato da prodan
Ho provato left join , right sia interni che esterni o usato il vecchio standard ANSI ma quando si parla di troppi dati nulla da fare!
Premetto uso VB6 con Sp5 e DB SQLserver 2000
Posso capire che una query fatta da VB dia qualche problema ma fatta da SQL manager NO!
A volte per fare delle elaborazioni ho dovuto spezzare le richieste in + query evitando il time out però aumentando le richieste aumenta notevolmente il tempo! tipo 1 ora e mezza per estrarre pochi dati mentre i clienti finali ne tireranno su almeno 4 o 5 volte tanto!
Forse stiamo arrivando al limite dell'usabilità del linguaggio!
Con i file i tempi erano notevolmente ridotti! Però per effettuare gli ordinamenti è un disastro!
Ciao
strano a me il time out lo ha dato solo un paio di volte, ma era il caso di query con più di una ventina di campi di cui 3 erano funzioni e join tra 7-8 tabelle... e poi mi restituiva 4500 righe in 2 minuti e mezzo...
ma scusa da query analyzer ti da dei problemi?
ma quanti campi e righe dovrebbe restituire?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.