Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Sub query o viste
venerdì 13 maggio 2011 - 16.56
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
massimo1965
Profilo
| Junior Member
134
messaggi | Data Invio:
ven 13 mag 2011 - 16:56
Ciao
lo scenario è questo :
ho una tabella anag_lotti che contiene dati relativi a lotti di produzione chiave primaria lotto
e 3 tabelle dove sono divisi i movimenti riferiti al lotto , carico, scarico e produzione.
Adesso dovrei creare un vista che mi riepiloghi i dati di carico, scarico e produzione per ciascun lotto.
In termini di prestazioni / logica è meglio creare un query con le 3 subquery oppure 3 viste separate e legarle alla tabella anag_lotti ?
In pratica è meglio questo
select lotto
,(select sum(quantita) from mov_carico where lotto= l1.lotto group by lotto) carico
,(select sum(quantita) from mov_scarico where lotto= l1.lotto group by lotto) scarico
,(select sum(quantita) from mov_produzione where lotto= l1.lotto group by lotto) produzione
from anag_lotti l1
oppure creare 3 viste ognuna per le singole quantita e poi
create view v_carico as select lotto,sum(quantita) carico from mov_carico group by lotto
create view v_scarico as select lotto,sum(quantita) scarico from mov_scarico group by lotto
create view v_produzione as select lotto,sum(quantita) produzione from mov_produzione group by lotto
e poi
select l1.lotto,c1.carico,s1.scarico,p1.produzione from anag_lotto l1
left join v_carico c1 on c1.lotto = l1.lotto
left join v_scarico a1 on c1.lotto = l1.lotto
left join v_produzione p1 on c1.lotto = l1.lotto
Vi ringrazio
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
ven 13 mag 2011 - 17:00
>Adesso dovrei creare un vista che mi riepiloghi i dati di carico,
>scarico e produzione per ciascun lotto.
>In termini di prestazioni / logica è meglio creare un query con
>le 3 subquery oppure 3 viste separate e legarle alla tabella
>anag_lotti ?
Ciao Massimo,
Le viste non sono altro che comandi di SELECT memorizzati in modo permanente nel db.
Se confronti i due piani di esecuzione non dovresti vedere differenze (a meno che le viste siano materializzate).
>Vi ringrazio
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
massimo1965
Profilo
| Junior Member
134
messaggi | Data Invio:
ven 13 mag 2011 - 19:14
grazie Lorenzo, sempre presente...
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !