Bom dia senhores.
Na ultima semana percebi uma certa dificuldade na hora de fazer algumas consultas em cima de uma view materializada, cujo refresh é feito toda madrugada (oracle 10g). A aparente lentidão desaperecia imediatamente após eu atualizar as estatísticas da view.
Pergunta: considerando que existe um indice nesta view, é possivel que o refresh esteja deixando as estatísticas defasadas?...Se sim, então seria um "best practice" atualizar as estatísticas da view apos o refresh? Vocês adotam outra estratégia?
Obrigado a todos.
Estatísticas em Views Materializadas
- stcoutinho
- Moderador
- Mensagens: 850
- Registrado em: Qua, 11 Mai 2011 5:15 pm
- Localização: são Paulo - SP
Lekinhu,
Não sei como é feito o refresh de sua matealized view.
Mas, se por acaso ele for do tipo FULL, a tabela base desta view é truncada antes de ser recarregada.
Eu recomendo que você use a package DBMS_STATS para atualizar as estatísticas da Materialized View (tabela base) e seus respectivos índices.
Abraços,
Sergio Coutinho
Não sei como é feito o refresh de sua matealized view.
Mas, se por acaso ele for do tipo FULL, a tabela base desta view é truncada antes de ser recarregada.
Eu recomendo que você use a package DBMS_STATS para atualizar as estatísticas da Materialized View (tabela base) e seus respectivos índices.
Abraços,
Sergio Coutinho
É FULL sim.
já imaginava que o melhor era atualizar apos cada refresh
Obrigado
já imaginava que o melhor era atualizar apos cada refresh
Obrigado
- stcoutinho
- Moderador
- Mensagens: 850
- Registrado em: Qua, 11 Mai 2011 5:15 pm
- Localização: são Paulo - SP
Olá lekinhu,
Sobre a atualização das estatísticas, não precisa fazer ela com 100% dos dados da tabela (COMPUTE).
Você pode elejer uma amostragem dos dados da tabela (ex: 45%), com os mesmos resultados de eficiência caso escolhesse fazer com 100% dos dados da tabela.
Gerando as estatísticas encima de uma amostragem dos dados, você demora menos tempo para completar a atualização das estatísticas da tabela base da Materialized View e seus índices.
Abraços,
Sergio Coutinho
Sobre a atualização das estatísticas, não precisa fazer ela com 100% dos dados da tabela (COMPUTE).
Você pode elejer uma amostragem dos dados da tabela (ex: 45%), com os mesmos resultados de eficiência caso escolhesse fazer com 100% dos dados da tabela.
Gerando as estatísticas encima de uma amostragem dos dados, você demora menos tempo para completar a atualização das estatísticas da tabela base da Materialized View e seus índices.
Abraços,
Sergio Coutinho
-
- Rank: Analista Júnior
- Mensagens: 93
- Registrado em: Qui, 29 Jan 2009 11:44 am
- Localização: Cuiabá
Rui Barros
OCP - Oracle Certified Professional
OCP - Oracle Certified Professional
Olá Lekinhu,
Como nosso colega citou .. Eu também faria o seguinte...
DBMS stats gather (no esquema)
Outra opção boa que gosto de utilizar em Views Materializadas é a seguinte:
Refresh Force... sendo assim, segue um exemplo:
create materialized viw MV
refresh force on demand
start with to_date('09-02-2012 08:38:27', 'dd-mm-yyyy hh24:mi:ss') next sysdate + 1
...
Como nosso colega citou .. Eu também faria o seguinte...
DBMS stats gather (no esquema)
Outra opção boa que gosto de utilizar em Views Materializadas é a seguinte:
Refresh Force... sendo assim, segue um exemplo:
create materialized viw MV
refresh force on demand
start with to_date('09-02-2012 08:38:27', 'dd-mm-yyyy hh24:mi:ss') next sysdate + 1
...
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 6 visitantes