Domanda

In alcune aree della mia applicazione ho bisogno di dati da diverse tabelle nel database (ho un'applicazione, l'applicazione ha molti attributi, ogni attributo ha diverse definizioni e ogni definizione ha un valore). Ho bisogno dei dati di tutte queste tabelle per un'applicazione. Dovrei usare una vista (che sarebbe piuttosto grande) o subquery per selezionare i record? Nel caso di sottoquery l'ottimizzatore è in grado di funzionare in modo efficiente? Sono anche interessato se la memorizzazione nella cache funzionerà per le sottoquery.

È stato utile?

Soluzione

Le viste vengono generalmente espanse in atto in sottoquery, a meno che non si contrassegni esplicitamente le viste come persistenti rilasciando un indice cluster su di esse.

Altri suggerimenti

Questa è una domanda 'Dipende'. Una vista potrebbe aiutare a rendere il codice più gestibile ma predicati di selezione complessi potrebbero confondere l'ottimizzatore.

Un'altra opzione è una procedura memorizzata che restituisce un set di record. Se riutilizzi più volte una sottoquery, potresti ottenere un certo chilometraggio dalla suddivisione della query, selezionando la sottoquery in una tabella temporanea e combinando le parti in un passaggio successivo.

Senza una descrizione più specifica del problema è difficile dare una risposta significativa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top