Sto utilizzando un database Oracle che ha prestazioni lente a causa di join su alcune tabelle per ottenere risultati. Sto pensando di creare una nuova tabella che memorizzi alcuni di questi dati in modo che possano essere recuperati rapidamente senza dover eseguire i join. Un'altra alternativa è creare una vista per i join che sto eseguendo e quindi interrogare sempre la vista per i dati. Qual è il compromesso in termini di prestazioni tra l'utilizzo di una nuova tabella e la creazione di una vista? Ho immaginato che una vista avrebbe ancora bisogno di eseguire il join in modo che non offrisse le stesse prestazioni di un nuovo tavolo.Prestazioni del database della vista rispetto alla nuova tabella
Informazioni su Oracle vista database è qui: - http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_8004.htm - What is a View in Oracle?
Chiarimento in base alle risposte di seguito. Le query sono per lo più ottimizzate già, quindi non voglio fare l'ottimizzazione. Preferirei una nuova tabella o una vista materializzata, ma vorrei sapere quale potrebbe essere meglio. Sono interessato alle prestazioni. Scrivere più codice per mantenere la nuova tabella in sincronia con le vecchie tabelle non è un problema. Aggiungerò semplicemente le dichiarazioni di modifica ovunque siano state apportate modifiche alle vecchie tabelle. Non voglio usare una vista materializzata se è più lenta dell'aggiunta di una nuova tabella.
La differenza è se l'aggiornamento dei dati è più efficiente per la vista materializzata o per una nuova tabella. Per la nuova tabella, fondamentalmente aggiungerò le dichiarazioni di aggiornamento ovunque ci siano stati aggiornamenti alla vecchia tabella. Quindi, quando l'utente interroga la nuova tabella, i dati sono già lì (non è necessaria un'ulteriore elaborazione). Ma per una vista materializzata, se la vista si aggiorna automaticamente solo quando l'utente interroga la vista, allora potrebbe essere più lento.
Visualizza i dati in base a una query. Ciò evita la replica dei dati e salva il tuo spazio di archiviazione invece di creare una nuova tabella. Penso che per il problema delle prestazioni guardiamo all'ottimizzazione delle query. – fn27
Penso che vuoi dire vista materializzata, no? – tbone
Oh, ho bisogno di guardare la differenza, ho appena iniziato a usare Oracle. Io uso solo la vista semplice, come 'CREATE VIEW' – fn27