Ho creato 8 visualizzazioni diverse e sto utilizzando tutte queste viste in una vista. Quindi mi stavo chiedendo prima di andare oltre con questa idea. Voglio sapere se ha un impatto negativo sulle prestazioni.È errato chiamare viste all'interno di una vista in sql
risposta
No, va bene. In molti casi, personalmente ritengo preferibile scrivere una vista con una definizione gigantesca e di difficile comprensione. A mio parere, l'utilizzo di più viste consente di:
- Incapsulare la logica discreta in singole viste.
- Riutilizzare la logica nelle singole viste senza dover ripetere la logica (eliminando i problemi di aggiornamento in seguito).
- Denominate la vostra logica in modo che sia più facile per il programmatore successivo capire cosa stavate cercando di realizzare.
Non è male per le prestazioni solo per essere viste. Potrebbe aggiungere un po 'di complessità da mantenere e causare ulteriori considerazioni quando si desidera modificare lo schema delle tabelle sottostanti. Se stavi usando le viste e si unissero alle stesse tabelle, penso che sarebbe meno efficiente di unirti alla tabella una volta in una vista.
Ottimo punto per avere le stesse tabelle in più viste. – RubberDuck
Il puro fatto di interrogare una vista dall'interno di una vista non ha implicazioni negative sulle prestazioni. Non è diverso dall'interrogare una tabella da una vista.
Preferisco l'utilizzo di viste nidificate, con ogni vista che incapsula e nomina alcuni dati trasversali.
Per quanto riguarda le prestazioni, può effettivamente migliorare le prestazioni se l'alternativa richiede che gli stessi dati vengano interrogati più volte: una vista nidificata è un po 'come una tabella temporanea, attivata una volta.
Il modo migliore e consigliato per scoprire le implicazioni di prestazioni è provare entrambe le opzioni ed esaminare l'output di spiegare.
Le viste vengono "compilate" durante la creazione del piano di esecuzione. Quindi c'è solo una penalità molto piccola per usarli: il tempo extra impiegato da SQL Server per cercare la definizione. Di solito questo ritardo non è misurabile.
Ciò significa che l'utilizzo di viste per gli scopi indicati da Larry Lustig è perfetto e incoraggiante.
TUTTAVIA: accertarsi di non introdurre JOIN non necessari utilizzando questa tecnica. Mentre SQL Server ha meccanismi per eliminare le tabelle non necessarie da una query, si arrende rapidamente se la query diventa complessa. L'esecuzione di questi JOIN aggiuntivi può causare un rallentamento significativo. Questo è il motivo per cui molte aziende hanno una regola di non visualizzazione.
Quindi: utilizzare le viste, ma assicurarsi di non utilizzarle in modo improprio.
- 1. Utilizzo di viste in SQL
- 2. Codeigniter più viste in una vista
- 3. viste di riciclaggio in vista di scorrimento
- 4. Posso chiamare una vista da un'altra vista?
- 5. Scambio di viste secondarie in una vista Contenitore
- 6. Qual è lo scopo delle viste in SQL?
- 7. viste aggiornabili - SQL Server 2008
- 8. Come chiamare a livello di programmazione una vista di Django Rest Framework all'interno di un'altra vista?
- 9. Aggiungere più viste in una vista utilizzando WPF e Caliburn.Micro
- 10. come rendere una variabile vista in tutte le viste - rotaie
- 11. La vista di controllo è completamente coperta da altre viste
- 12. Come risolvere una vista SQL rotta
- 13. ORDER BY in una vista di SQL Server 2008
- 14. Chiamare il metodo onDraw() di una vista personalizzata in Android
- 15. Generazione di una vista SQL dal codice EF 6.1 prima
- 16. Creazione di viste in lettura in Sql Server
- 17. Chiamare una procedura memorizzata Oracle in Squirrel SQL
- 18. L'utilizzo di ViewBag in MVC è errato?
- 19. È possibile mascherare una vista in Android?
- 20. Una vista MySQL è più veloce di una normale query?
- 21. Chiamare la funzione vista da un'altra vista - Backbone
- 22. come chiamare una stored procedure in cui clausola di SQL
- 23. L'invalidazione di una vista personalizzata causa l'annullamento di tutte le viste personalizzate in un gruppo di viste?
- 24. Come chiamare la stored procedure in una vista?
- 25. Funzione iOS da chiamare una volta (quando l'applicazione è inizializzata)
- 26. Come chiamare un'azione senza generare una vista in grails
- 27. Come si elencano tutte le viste indicizzate in SQL Server?
- 28. Devo riutilizzare i modelli di vista in diverse viste?
- 29. Logica di ramificazione in una vista MVC
- 30. Fluent NHibernate mappatura per viste SQL
L'utilizzo di viste per fare riferimento ad altre viste è perfettamente accettabile. Tuttavia, le prestazioni dipenderanno molto dal tuo codice. – SchmitzIT
fino a quando la vista non fa riferimento a se stessa dovrebbe andare bene – atar
Non ** chiamate ** visualizzazioni (non sono "programmi" o codice) - si seleziona da loro. –