É bem simples : a view comum (ie, CREATE VIEW nomedela AS query; ) nada mais é 
do que o TEXTO DE UMA CONSULTA, que é armazenado no banco, assim a cada vez que 
vc fazer uma consulta na view, logicamente o texto vai ser lido e executado de 
novo,o plano vai ser refeito, etc, NÃO HÁ dados numa view comum... Caso vc 
queira uma view que depois do SQL executado seja feita uma 'cópia' local dos 
dados, aí nos próximos acessos o plano não precisa ser re-executado (a 'cópia' 
local dos dados é lida), no bd Oracle isso se chama MATERIALIZED VIEW, vc a 
cria com CREATE MATERIALIZED VIEW nnn , e (logicamente) há Diversas opções pra 
se especificar quando/como é feito o refresh dos dados dessa 'cópia' local....
 Dá uma lida no manual 'SQL Reference' nos capítulos de CREATE VIEW e CREATE 
MATERIALIZED VIEW que vc acha refs, sintaxe e links pra exemplos do que foi 
falado.

 []s

   Chiappa
--- Em oracle_br@yahoogrupos.com.br, "andreaugustocm" <andreaugust...@...> 
escreveu
>
> Bom dia Galera!
> 
> Primeiro gostaria de desejar um ótimo ano a todos!!
> 
> Vou mandar uma questão bem simples aos DBA's de plantão, caso puderam 
> ajudar...
> 
> Como fica o plano de execução de uma VIEW, considerando a situação que fiz um 
> select na VIEW que deverá trazer em torno de 100 linhas, sendo que o total de 
> linhas retornadas pela View quando efetuo um SELECT * FROM ..... gira  em 
> torno de um milhão de linhas? A View seleciona um milhão de linhas e depois 
> aplica meu filtro para retornar as 100 linhas, ou o oracle é esperto e 
> somente pesquisa as 100 linhas na view?
> 
> Grande Abraço,
> André
>


Responder a