Muito bom dia, a todos!
Hoje vou falar sobre como verificar se as
estatísticas das tabelas e índices da sua instância estão atualizadas. Quero lembrar que o otimizador do banco de dados
Oracle nas versões “mais recentes”, otimizador baseado em custo (CBO - Cost-Based Optimizer), que é o grande responsável por traçar o plano de
execução, (definindo a “melhor” forma de se acessar um dado optando pelo “mais
eficiente” método de acesso), utiliza as estatísticas para fazê-lo. Dessa
forma, pode-se afirmar que a coleta e atualização das estatísticas está
diretamente ligada à performance do banco de dados.
Bom...
Criei duas consultas para verificarmos quando foi a
última vez que o objeto (índice ou tabela) teve suas estatísticas coletadas. É
importante saber que o banco Oracle realiza de forma automática a coleta das
estatísticas para o caso de uma variação muito grande do tamanho do objeto
(cerca de 10%), mas isso é um assunto que falarei em outra oportunidade.
Na projeção da primeira consulta, deve-se observar
a data de atualização das estatísticas das tabelas do seu ambiente:
SELECT STAT.OWNER AS "Schema
proprietário",
STAT.TABLE_NAME AS "Nome
do objeto",
STAT.OBJECT_TYPE AS "Tipo
do objeto",
STAT.NUM_ROWS AS "Quant. de Linhas",
STAT.LAST_ANALYZED AS "Última coleta das estatísticas"
FROM SYS.DBA_TAB_STATISTICS STAT
WHERE STAT.OWNER NOT IN ('SYS', 'SYSTEM', 'SYSMAN', 'DBSNMP')
ORDER BY LAST_ANALYZED;
Já
na projeção da segunda (abaixo), é possível saber quando as estatísticas dos
índices foram coletadas pela última vez:
SELECT STAT.OWNER AS "Schema
proprietário",
STAT. TABLE_NAME AS "Nome do objeto",
STAT.OBJECT_TYPE AS "Tipo do objeto",
STAT.NUM_ROWS AS "Quant. de Linhas",
STAT.LAST_ANALYZED AS "Última coleta das estatísticas"
FROM SYS.DBA_IND_STATISTICS STAT
WHERE STAT.OWNER NOT IN ('SYS', 'SYSTEM', 'SYSMAN', 'DBSNMP')
ORDER BY LAST_ANALYZED;
Os campos projetados em ambas as
consultas são:
"Schema proprietário": -
campo que informa o esquema dono do objeto;
"Nome do objeto": -
campo que informa o nome do objeto;
"Tipo do objeto": - informa
o tipo do campo, no caso: tabela ou índice;
"Quant. de Linhas": - exibe
a quantidade de registros do objeto;
"Última coleta das
estatísticas": - data e hora da realização da última coleta (mais
recente) das estatísticas do objeto em questão.
Na
seleção da informação, abstraí alguns esquemas, pois são os reservados e
utilizados pelo sistema, e não cabem termos conhecimento das estatísticas
desses usuários.
A
ordenação da informação está em ordem ascendente de data, ou seja, da menor
para a maior apenas para facilitar e sabermos que os objetos com as
estatísticas mais desatualizadas aparecerão na frente dos dados.
Por
hoje é só!
Até
a próxima!
0 comentários:
Postar um comentário