Salve a tutti,
oltre ad unirmi a quanto gia' indicato da @Migliorabile, vorrei riprenderne un "pezzo" che comunque sempre @Migliorabile ha gia' chiarito, ma non mi pare recepito:
tatino ha scritto:
...
Mi spiego meglio: a livello di performance è preferibile eseguire query multiple da codice oppure utilizzare le views?
...
le viste altro non sono altro che proiezioni gia' definite nel catalogo del database, quindi comandi di SELECT gia' definiti, ma non occupano "spazio" e non referenziano direttamente una riga relativa ad una tabella (a meno che come in SQL Server siano "indexed views" dove viene generato ed archiviato almeno un indice cluster sul risultato della proiezione della vista)...
i BOL di SQL Server recitano: "... una vista non esiste come set archiviato di valori di dati in un database. Le righe e le colonne di dati provengono da tabelle a cui fa riferimento la query che definisce la vista e sono prodotte dinamicamente quando si fa riferimento alla vista. ..."
in questo senso, proiettare una vista, proiettare una tabella, eseguire una stored procedure, "tecnicamente" non comporta alcuna differenza prestazionale e/o motivazionale in se'...
sono quindi "un modo (pre)definito dal dba" di accedere ad un particolare set non ordinato di dati espresso da una o piu' tabelle composte da una o piu' colonne con un eventuale filtro prestabilito...
al di la' di questo, a mio parere e' sicuramente preferibile l'utilizzo (solo) di viste e stored procedure per l'accesso ai dati, escludendo quindi l'accesso alle base tables, che permette tra l'altro permette un layer di astrazione "superiore" di accesso ai dati, e quindi permettere ad esempio di modificare la struttura delle tabelle sottostanti in maniera trasparente ai client richiedenti, ovvero concedere l'accesso a determinate righe e/o colonne in base a criteri funzionali di autorizzazione in maniera molto semplice...
di mio, solitamente, non concedo mai l'accesso alle base tables, anche se spesso risulto molto talebano agli sviluppatori
salutoni omnia
--
Andrea