› Fóruns › Banco de dados Oracle › Procedure + View ou Tabela › Procedure + View ou Tabela
[quote=”burga”:2xsanbq4][quote=”rman”:2xsanbq4]Burga, o raciocínio do nosso amigo não está correto ? O ganho é muito pouco que nem compensa ?
Por que seria assim:
SELECT *
FROM (
SELECT *
FROM TABELA
WHERE DATA >= '201001'
) T
WHERE T.DATA = '201105'
Como ele disse a condição DATA >= ‘201001’ retornaria 30% da tabela…[/quote]
É que uma view não materializada não armazena fisicamente os dados de retorno. Então ela sempre vai executar a consulta que a “monta” quando ela for acessada. Isso dá uma falsa impressão de que você só está acessando os 30% dos dados da tabela original, mas antes disso, a consulta que monta a view está sendo executada na tabela original pra poder extrair estes 30%.
[/quote]
É verdade, pra chegar nos 30%, teve o custo do 100% do mesmo jeito…
Pode se utilizar particionamento de tabela para melhorar o desempenho ? Ou neste caso, realmente VIEW MATERIALIZADA é a melhor solução ?