Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle View vs unione di tabelle in Oracle

Di solito non c'è differenza di prestazioni tra una singola query e una query logicamente equivalente che utilizza le viste.

Oracle dispone di trasformazioni di ottimizzazione che possono combinare le viste con la query esterna; push dei predicati, unione di viste semplici e complesse e così via. Pensa alle viste più come a una macro di testo che crea una query di grandi dimensioni, anziché a una funzione che restituisce righe.

Ad esempio, nella query seguente Oracle sarebbe probabilmente abbastanza intelligente da inserire nella vista il predicato sulla colonna della chiave primaria. Sebbene la vista di per sé possa restituire milioni di righe, quando viene eseguita l'intera query Oracle applicherà prima il predicato sulla colonna della chiave primaria.

select *
from view_returns_millions_of_rows
where primary_key_value = 1;