Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle View vs joindre des tables dans Oracle

Il n'y a généralement aucune différence de performances entre une requête unique et une requête logiquement équivalente qui utilise des vues.

Oracle a des transformations d'optimiseur qui peuvent combiner des vues avec la requête externe; poussée de prédicat, fusion de vues simples et complexes, etc. Pensez aux vues plus comme une macro de texte qui construit une grande requête, au lieu d'une fonction qui renvoie des lignes.

Par exemple, dans la requête ci-dessous, Oracle serait probablement assez intelligent pour pousser le prédicat sur la colonne de clé primaire dans la vue. Bien que la vue seule puisse renvoyer des millions de lignes, lorsque la requête entière est exécutée, Oracle applique d'abord le prédicat sur la colonne de clé primaire.

select *
from view_returns_millions_of_rows
where primary_key_value = 1;