Monitorar e Analisar Estatísticas do Otimizador

Você pode monitorar as estatísticas do otimizador para um banco de dados gerenciado, analisar as tarefas de coleta e do Optimizer Statistics Supervisor e implementar as recomendações do Optimizer Statistics Supervisor no Database Management Diagnostics & Management.

Para ir até a seção Estatísticas do otimizador, vá para a página Detalhes do banco de dados gerenciado e clique em Estatísticas do otimizador no painel esquerdo em Recursos.

Sobre as Estatísticas do Otimizador

As estatísticas do otimizador são um conjunto de dados que descrevem detalhes sobre o banco de dados e seus objetos. As estatísticas fornecem uma imagem estatisticamente correta do armazenamento e da distribuição de dados, que é usada pelo otimizador ao avaliar caminhos de acesso. O otimizador usa estatísticas para obter uma estimativa do número de linhas (e número de bytes) recuperadas de uma tabela, partição ou índice. O otimizador estima o custo do acesso, determina o custo de possíveis planos e, em seguida, seleciona o plano de execução com o custo mais baixo.

As estatísticas do otimizador incluem:

  • Estatísticas de tabela: Inclui o número de linhas, o número de blocos e o tamanho médio de linha.

  • Estatísticas de coluna: Inclui o número de valores distintos e nulos em uma coluna e a distribuição de dados.

  • Estatísticas de índice: Inclui o número de blocos de folha, os níveis de índice e o fator de cluster de índice.

  • Estatísticas do sistema: Inclui o desempenho e a utilização de CPU e Entrada/Saída.

Para obter mais informações sobre:

Sobre a Coleta de Estatísticas do Otimizador

No Oracle Database, a coleta de estatísticas do otimizador é a reunião de estatísticas do otimizador para objetos de banco de dados, incluindo objetos fixos. Por padrão, o Oracle Database usa a coleta automática de estatísticas do otimizador. Nesse caso, o banco de dados executa automaticamente DBMS_STATS para coletar estatísticas do otimizador para todos os objetos de esquema cujas estatísticas não foram encontradas ou estão desatualizadas. O processo elimina muitas tarefas manuais associadas ao gerenciamento do otimizador e reduz significativamente os riscos de gerar planos de execução abaixo do ideal em decorrência de estatísticas não encontradas ou desatualizadas. Você também pode reunir estatísticas manualmente usando o pacote DBMS_STATS.

O Oracle Database 19c apresenta a coleta automática de estatísticas do otimizador de alta frequência. Essa tarefa leve coleta periodicamente estatísticas para objetos obsoletos e o intervalo padrão é de 15 minutos. Ao contrário do job de coleta de estatísticas automatizada, a tarefa de alta frequência não executa ações como expurgar estatísticas para objetos não existentes ou chamar o Optimizer Statistics Advisor.

Para obter informações sobre:

Sobre o Optimizer Statistics Advisor

O Optimizer Statistics Advisor é um software de diagnóstico integrado que executa tarefas para analisar como as estatísticas do otimizador são coletadas no momento, a eficácia dos jobs de coleta de estatísticas existentes e a qualidade das estatísticas coletadas. O Optimizer Statistics Advisor mantém regras, que incorporam as melhores práticas da Oracle com base no conjunto de recursos atual. Dessa maneira, o consultor sempre fornece as recomendações mais atualizadas para a coleta de estatísticas.

Para obter mais informações sobre o Optimizer Statistics Advisor, consulte About Optimizer Statistics Advisor no Oracle Database SQL Tuning Guide.

Monitorar Resumo de Estatísticas do Otimizador

Você pode monitorar um resumo das estatísticas do objeto no Banco de Dados Gerenciado e as tarefas e subtarefas executadas para coletar estatísticas do otimizador.

Os mosaicos a seguir são exibidos na guia Resumo da seção Estatísticas do otimizador e fornecem uma visão geral das estatísticas do otimizador:

  • Estatísticas do objeto: Exibe as estatísticas atuais coletadas para os objetos no Banco de Dados Gerenciado. Este gráfico de pizza fornece um insight do número de objetos para os quais estatísticas novas, estatísticas desatualizadas ou nenhuma estatística foi coletada.

  • Tarefas de coleta de estatísticas: Exibe o status e o número de tarefas de coleta de estatísticas do otimizador ou o status e o número dos objetos do banco de dados cujas estatísticas são coletadas todos os dias, nos últimos sete dias. Cada barra do gráfico indica o número de tarefas executadas em um dia específico ou o número de objetos cujas estatísticas foram coletadas em um dia específico, e a cor indica o status. Por padrão, esse gráfico de barras fornece uma visão geral do número de tarefas automáticas de coleta de estatísticas do otimizador divididas por status. Selecione a opção Status do objeto na lista drop-down Exibir por para exibir o número de objetos cujas estatísticas foram coletadas. Além disso, você pode selecionar uma opção na lista drop-down Tipo para exibir o número de tarefas ou objetos com base no mecanismo usado para coletar estatísticas, por exemplo, automático, manual ou ambos.

  • Lista de tarefas de coleta de estatísticas: Exibe a lista de tarefas de coleta de estatísticas do otimizador nos últimos sete dias, juntamente com as seguintes informações para cada tarefa:

    • Nome da tarefa: Nome da tarefa de coleta de estatísticas do otimizador.

    • Status: Status da tarefa de coleta de estatísticas do otimizador.

    • Escopo: Escopo da tarefa de coleta de estatísticas do otimizador, como Banco de Dados, Esquema, Índice ou Tabela.

    • Tipo: Tipo de tarefa de coleta de estatísticas do otimizador: Automática ou Manual.

    • Destino: Destino no qual a tarefa de coleta de estatísticas do otimizador foi executada.

    • Objetos: Número total de objetos de banco de dados verificados e o número de objetos de banco de dados cuja tarefa de coleta de estatísticas do otimizador foi concluída.

    • Duração: Duração da tarefa de coleta de estatísticas do otimizador.

    • Horário inicial: Horário inicial da tarefa de coleta de estatísticas do otimizador.

    Você pode usar as listas drop-down e os campos acima da lista de tarefas de coleta de estatísticas do otimizador para filtrar as tarefas por um tipo ou status específico ou para procurar uma tarefa específica. Você também pode clicar em uma barra de status de tarefa específica no gráfico de barras Tarefas de coleta de estatísticas para exibir a lista de tarefas de coleta de estatísticas do otimizador executadas nesse dia específico. Observe que esse recurso não estará disponível se o Status do objeto for exibido no gráfico de barras Tarefas de coleta de estatísticas.

Exibir Detalhes da Tarefa de Coleta de Estatísticas do Otimizador

Clique no nome da tarefa na Lista de tarefas de coleta de estatísticas para ir até a página Detalhes da tarefa de coleta de estatísticas. Observe que você deve ter os seguintes privilégios para exibir os detalhes da tarefa de coleta de estatísticas do otimizador:

  • ANALYZE ANY
  • ANALYZE ANY DICTIONARY

Os mosaicos a seguir são exibidos na página Detalhes da tarefa de coleta de estatísticas:

  • Informações sobre a tarefa de coleta de estatísticas: Exibe as informações pertencentes à tarefa de coleta de estatísticas do otimizador.
  • Status da subtarefa de coleta de estatísticas: Exibe o status das subtarefas executadas como parte da tarefa de coleta de estatísticas do otimizador, em um gráfico de pizza.
  • Status da subtarefa de coleta de estatísticas por tipo de objeto: Exibe uma divisão do status das subtarefas por tipo de objeto de banco de dados em um gráfico de barras. Cada barra no gráfico denota um tipo de objeto de banco de dados e a cor denota o status da subtarefa.
  • Subtarefas de coleta de estatísticas: Exibe uma lista de subtarefas executadas como parte da tarefa de coleta de estatísticas do otimizador.

Analisar Tarefas do Optimizer Statistics Advisor e Implementar Recomendações

Você pode monitorar e analisar tarefas do Optimizer Statistics Advisor e implementar recomendações do Optimizer Statistics Advisor.

Observação

Para Autonomous Databases, o Optimizer Statistics Advisor é desativado por padrão e a guia Advisor não exibe dados.

Para verificar se o Optimizer Statistics Advisor está ativado para Autonomous Databases, execute a seguinte consulta:

select dbms_stats.get_prefs('AUTO_STATS_ADVISOR_TASK') from dual;

Para ativar o Optimizer Statistics Advisor para Autonomous Databases, execute a seguinte consulta:

exec dbms_stats.set_global_prefs('AUTO_STATS_ADVISOR_TASK','TRUE');

Os mosaicos a seguir são exibidos na guia Consultor da seção Estatísticas do Otimizador e fornecem uma visão geral das tarefas do Optimizer Statistics Advisor:

  • Resumo da tarefa: Exibe o status das tarefas do Optimizer Statistics Advisor executadas nos últimos sete dias.

  • Tarefas do Assistente: Exibe o status e o número das tarefas do Optimizer Statistics Advisor executadas a cada dia, nos últimos sete dias. Cada barra no gráfico indica o número de tarefas executadas em um dia específico e a cor indica o status. Por padrão, esse gráfico de barras fornece uma visão geral do número de tarefas automáticas do Optimizer Statistics Advisor divididas por status. Selecione uma opção na lista drop-down Tipo para exibir as tarefas do Optimizer Statistics Advisor com base no mecanismo usado para reuni-las, por exemplo, automático, manual ou ambos.

  • Lista de tarefas do Consultor: Exibe a lista de tarefas do Optimizer Statistics Advisor nos últimos sete dias, juntamente com as seguintes informações para cada tarefa:

    • Nome da execução: Nome da execução da tarefa do Optimizer Statistics Advisor.

    • Nome da tarefa: Nome da tarefa do Optimizer Statistics Advisor.

    • Status: Status da tarefa do Optimizer Statistics Advisor.

    • Tipo: Tipo de tarefa do Optimizer Statistics Advisor: Automática ou Manual.

    • Descobertas: Descobertas da tarefa do Optimizer Statistics Advisor.

    • Duração: Duração da tarefa do Optimizer Statistics Advisor.

    • Horário inicial: Horário inicial da tarefa do Optimizer Statistics Advisor.

    • Mensagem: Mensagem, se houver.

Você pode usar as listas drop-down e os campos acima da lista de tarefas do Optimizer Statistics Advisor para filtrar as tarefas por um tipo ou status específico ou procurar uma execução ou tarefa específica. Você também pode clicar em uma barra de status de tarefa específica no gráfico de barras Tarefas do consultor para exibir a lista de tarefas do Optimizer Statistics Advisor executadas nesse dia específico.

Implementar Recomendações do Optimizer Statistics Advisor

Clique no nome de execução da tarefa do Optimizer Statistics Advisor na Lista de tarefas do consultor para ir para a página Detalhes do Optimizer Statistics Advisor.

Os mosaicos a seguir são exibidos na página Detalhes do Optimizer Statistics Advisor:

  • Informações do Optimizer Statistics Advisor: Exibe as informações pertencentes à tarefa do Optimizer Statistics Advisor.

  • Descobertas do Optimizer Statistics Advisor: Exibe as descobertas da tarefa do Optimizer Statistics Advisor com as seguintes informações:

    • Regra: Padrão fornecido pela Oracle pelo qual o Optimizer Statistics Advisor executa suas verificações.

    • Descoberta: Descobertas fornecidas pelo Optimizer Statistics Advisor.

    • Recomendação: Recomendações fornecidas pelo Optimizer Statistics Advisor.

    • Motivo: Motivo da recomendação fornecida pelo Optimizer Statistics Advisor.

    • Detalhes: Clique no ícone Ações (Ações) para exibir mais detalhes sobre a descoberta e um exemplo do script que pode ser usado para implementar a recomendação.

Depois de revisar as descobertas na página Detalhes do consultor de estatísticas do Otimizador, você pode criar um job para implementar todas as recomendações.

Observação

Se o usuário do banco de dados não tiver os privilégios necessários, as descobertas poderão não ser exibidas na página Detalhes do consultor de estatísticas do Otimizador e o botão Implementar todas as recomendações poderá não estar disponível mesmo que haja descobertas para a tarefa. É recomendável definir a credencial de diagnóstico Avançado para um usuário com os privilégios necessários. Para obter informações, consulte Definir Credenciais Preferenciais em Diagnóstico e Gerenciamento.

Para implementar as recomendações do Optimizer Statistics Advisor:

  1. Clique em Implementar todas as recomendações na seção Descobertas do Optimizer Statistics Advisor.
  2. No painel Implementar todas as recomendações:
    1. Forneça as seguintes informações para criar um job para implementar as recomendações:
      1. Nome do job: Verifique o nome do job preenchido automaticamente e faça alterações nele, se necessário.
      2. Descrição do job: Verifique a descrição do job preenchida automaticamente e faça alterações nela, se necessário.
    2. Especificar parâmetros do job:
      1. Tipo de credencial: Selecione uma das opções disponíveis para especificar as credenciais do banco de dados a serem conectadas ao Banco de Dados Gerenciado. Para obter informações sobre tipos de credenciais, consulte Usar Credenciais para Executar Tarefas de Diagnóstico e Gerenciamento.
        Observação

        O usuário especificado deve ter os seguintes privilégios para submeter o job para implementar recomendações:
        • ANALYZE ANY
        • ANALYZE ANY DICTIONARY
      2. Nome do bucket: Selecione o bucket do Oracle Object Storage no qual a saída do job será armazenada. O bucket do Oracle Object Storage pode estar no mesmo compartimento do job ou em outro compartimento e você deve ter as permissões necessárias do serviço Oracle Cloud Infrastructure Object Storage para selecionar o bucket. Para obter mais informações, consulte Permissões Adicionais Necessárias para Usar Diagnóstico e Gerenciamento.
    3. Como alternativa, clique em Mostrar SQL para exibir a instrução SQL que será executada.
    4. Clique em Implementar todas as recomendações.

Todas as recomendações do Optimizer Statistics Advisor agora serão implementadas e você pode monitorar esse job na seção Jobs da página Detalhes do banco de dados gerenciado.