Recursos de Alto Desempenho no Autonomous AI Database na Dedicated Exadata Infrastructure

Este artigo descreve os principais recursos de ajuste de desempenho no Autonomous AI Database on Dedicated Exadata Infrastructure.

Observe que, ao longo desta seção, o termo "você" é amplamente usado para significar qualquer usuário da sua organização que tenha a responsabilidade de executar determinadas tarefas. Em alguns casos, esse é o DBA da aplicação, em outros é o desenvolvedor da aplicação.

O Autonomous AI Database inclui vários recursos que monitoram, analisam e otimizam automaticamente o desempenho do seu banco de dados. Para obter uma lista completa dos recursos SQL Tuning e Performance Management do Oracle Autonomous AI Database e instruções sobre como usá-los, consulte o Oracle Database 19c SQL Tuning Guide ou o Oracle Database 26ai SQL Tuning Guide.

Você pode ver uma ampla categorização para os principais recursos de ajuste de desempenho do Autonomous AI Database descritos abaixo.

Descrição da ilustração hp_features.svg

Serviços de Banco de Dados Predefinidos

O modo como o aplicativo se conecta ao banco de dados e como você codifica as chamadas SQL para o banco de dados determinam o desempenho geral das operações de processamento e geração de relatórios de transações do aplicativo.

Ao fazer conexões com o Autonomous AI Database, o desempenho da interação do seu aplicativo com o banco de dados depende de qual serviço de banco de dados você se conecta. O Autonomous AI Database fornece vários conjuntos de serviços de banco de dados que devem ser usados ao se conectar com seu banco de dados. Esses serviços são projetados para suportar diferentes tipos de operações de banco de dados, conforme descrito em Nomes de Serviço de Banco de dados Predefinidos para Autonomous AI Databases.

Dica: Verifique as principais características dos serviços de banco de dados predefinidos e a tabela que compara os diferentes conjuntos de serviços de banco de dados com base nessas características para decidir qual serviço de banco de dados é mais apropriado para os requisitos de desempenho do seu aplicativo.

Pools de Conexões

Ao fazer conexões com o Autonomous AI Database, você pode usar pools de conexões para reduzir a sobrecarga de desempenho de criar e destruir repetidamente conexões individuais. Esse é outro fator que tem grande impacto no desempenho da interação do seu aplicativo com o banco de dados.

Com muita frequência, o uso de pools de conexão é considerado apenas ao projetar ou aprimorar um aplicativo para fornecer disponibilidade contínua. No entanto, o uso de pools de conexão, em vez de conexões individuais, pode beneficiar quase todos os aplicativos de processamento de transações. Um pool de conexão oferece os seguintes benefícios:

Recursos de Conexão de Finalidades Especiais

O Oracle Net Services (anteriormente chamado SQL*Net) fornece vários recursos de conexão que melhoram o desempenho em cenários de conexão específicos. Esses recursos são descritos no Oracle Database 19c Net Services Administrator's Guide ou no Oracle Database 26ai Net Services Administrator's Guide.

Recursos de Ajuste de Desempenho SQL

Bons aplicativos começam com uma SQL bem escrita. O Oracle Autonomous AI Database fornece diversos recursos que permitem criar aplicativos de alto desempenho e validar seu código SQL e PL/SQL. Alguns desses recursos estão listados abaixo:

À medida que desenvolve seu aplicativo, você pode aprender rapidamente como esses recursos estão afetando o código SQL escrito e, assim, melhorar seu código usando a Planilha SQL fornecida pelo Oracle Database Actions (que é incorporado ao Autonomous AI Database) e pelo Oracle SQL Developer (um aplicativo gratuito que você instala no seu sistema do desenvolvimento).

Rastreamento SQL

Quando uma operação de aplicativo leva mais tempo do que o esperado, obter um rastreamento de todas as instruções SQL executadas como parte dessa operação com detalhes como o tempo gasto por essa instrução SQL nas fases de análise, execução e extração ajudará você a identificar e resolver a causa do problema de desempenho. Você pode usar o rastreamento SQL em um Autonomous AI Database para fazer isso.

O rastreamento SQL é desativado por padrão no Autonomous AI Database. Você deve ativá-lo para começar a coletar os dados de rastreamento SQL. Consulte Usar Rastreamento SQL no Autonomous AI Database para obter instruções detalhadas sobre como ativar e usar o Rastreamento SQL.

Estatísticas do Otimizador

O Autonomous AI Database reúne estatísticas do otimizador automaticamente para que você não precise executar essa tarefa manualmente, o que ajuda a garantir a atualização de suas estatísticas. A recolha automática de estatísticas é ativada no Autonomous AI Database e executada em uma janela padrão de manutenção.

Observação: Para obter mais informações sobre horários de janela da manutenção e coleta automática de estatísticas do otimizador, consulte Oracle Database 19c Administrator's Guide ou Oracle Database 26ai Administrator's Guide. Para obter mais informações sobre estatísticas do otimizador, consulte Oracle Database 19c SQL Tuning Guide ou Oracle Database 26ai SQL Tuning Guide.

Dicas do Otimizador

As dicas do otimizador são comentários especiais em uma instrução SQL que transmitem instruções ao otimizador. O otimizador usa dicas para escolher um plano de execução para a instrução, a menos que seja impedido por alguma condição.

Os padrões do Autonomous AI Database para as dicas do otimizador e PARALLEL diferem dependendo da sua carga de trabalho:

Indexação Automática

A indexação automática automatiza as tarefas de gerenciamento de índices no Autonomous AI Database. A indexação automática é desativada por padrão no Autonomous AI Database.

A criação manual de índices requer conhecimento profundo do modelo de dados, do aplicativo e da distribuição de dados. No passado, os DBAs eram responsáveis por fazer escolhas sobre quais índices criar e, às vezes, os DBAs não revisavam suas escolhas ou mantinham índices à medida que as condições mudavam. Como resultado, as oportunidades de melhoria foram perdidas e o uso de índices desnecessários poderia se tornar uma responsabilidade pelo desempenho.

O recurso de indexação automática no Autonomous AI Database monitora a carga de trabalho do aplicativo e cria e mantém índices automaticamente.

Dica: Para obter uma alternativa de "teste" que demonstre estas instruções, execute o Lab 14: Automatic Indexing no Oracle Autonomous AI Database Dedicated for Developers and Database Users Workshop.

Ativar Indexação Automática

Desativar Indexação Automática

Use o procedimento DBMS_AUTO_INDEX.CONFIGURE para desativar a indexação automática. Por exemplo, executar a instrução abaixo desativa a indexação automática em um banco de dados para que nenhum novo índice automático seja criado. No entanto, os índices automáticos existentes permanecem ativados.

EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','OFF');

Para obter mais informações, consulte Managing Auto Indexes no Oracle Database 19c Administrator's Guide ou Oracle Database 26ai Administrator's Guide.

Ingestão Rápida

A ingestão rápida otimiza o processamento de inserções de dados de linha única de alta frequência em um banco de dados. A ingestão rápida usa o grande pool para armazenar em buffer as inserções antes de gravá-las no disco, de modo a melhorar o desempenho da inserção de dados.

O objetivo do fast-ingest é oferecer suporte a aplicativos que geram muitos dados informativos que têm valor importante no agregado, mas que não exigem necessariamente garantias ACID completas. Muitas aplicações na IoT (Internet of Things) têm uma carga de trabalho rápida do tipo "disparar e esquecer", como dados de sensores, dados de medidores inteligentes ou até mesmo câmeras de tráfego. Para esses aplicativos, os dados podem ser coletados e gravados no banco de dados em grandes volumes para análise posterior.

A ingestão rápida é muito diferente do processamento normal de transações do Oracle AI Database em que os dados são registrados e nunca são perdidos uma vez "gravados" no banco de dados (ou seja, confirmados). Para atingir o throughput máximo de ingestão, os mecanismos normais de transação da Oracle são ignorados, e é responsabilidade do aplicativo verificar se todos os dados foram realmente gravados no banco de dados. Foram adicionadas APIs especiais que podem ser chamadas para verificar se os dados foram gravados no banco de dados.

Para obter uma visão geral da ingestão rápida e das etapas envolvidas no uso desse recurso, consulte Using Fast Ingest no Oracle Database 19c Performance Tuning Guide ou no Oracle Database 26ai Performance Tuning Guide.

Para usar a ingestão rápida com o Autonomous AI Database, você deve:

Classes de Job Predefinidas com o Oracle Scheduler

O Autonomous AI Database inclui valores job_class predefinidos para uso com o Oracle Scheduler. Essas classes de cargos permitem agrupar cargos que compartilham características e comportamento comuns em entidades maiores para que você possa priorizar entre essas classes controlando os recursos alocados para cada classe.

Com classes de cargo predefinidas, você pode garantir que suas tarefas críticas tenham prioridade e recursos suficientes para serem concluídas. Por exemplo, para um projeto crítico carregar um data warehouse, você pode combinar todos os jobs de data warehousing em uma classe e priorizá-los em relação a outros jobs alocando uma alta porcentagem dos recursos disponíveis. Também é possível atribuir prioridades relativas aos cargos em uma classe de cargo.

Os valores job_class predefinidos, TPURGENT, TP, HIGH, MEDIUM e LOW são mapeados para os grupos de consumidores correspondentes. Essas classes de job permitem especificar o grupo de consumidores no qual um job é executado com DBMS_SCHEDULER.CREATE_JOB.

O procedimento DBMS_SCHEDULER.CREATE_JOB suporta os tipos de job PLSQL_BLOCK e STORED_PROCEDURE para o parâmetro job_type no Autonomous AI Database.

Por exemplo: use o seguinte para criar um único job regular a ser executado no grupo de consumidores HIGH:

BEGIN
   DBMS_SCHEDULER.CREATE_JOB (
     job_name => 'update_sales',
     job_type => 'STORED_PROCEDURE',
     job_action => 'OPS.SALES_PKG.UPDATE_SALES_SUMMARY',
     start_date => '28-APR-19 07.00.00 PM Australia/Sydney',
     repeat_interval => 'FREQ=DAILY;INTERVAL=2',
     end_date => '20-NOV-19 07.00.00 PM Australia/Sydney',
     auto_drop => FALSE,
     job_class => 'HIGH',
     comments => 'My new job');
END;
/

Observações do Oracle Scheduler:

Consulte Programando Jobs com o Oracle Scheduler no Oracle Database 19c ou Oracle Database 26ai para obter mais informações sobre o Oracle Scheduler e o DBMS_SCHEDULER.CREATE_JOB.

Consulte Procedimento SET_ATTRIBUTE no Oracle Database 19c ou Oracle Database 26ai para obter informações sobre atributos de cargo.

Ferramentas de Ajuste e Monitoramento de Desempenho

Várias situações, como alterar cargas de trabalho, limitações de recursos em servidores de aplicativo e banco de dados ou simplesmente gargalos de rede, podem dar origem a problemas de desempenho do aplicativo. A Oracle fornece uma grande variedade de ferramentas para ajudá-lo a monitorar o desempenho, diagnosticar problemas de desempenho e ajustar seu aplicativo ou o banco de dados para resolver o problema. Algumas delas estão listadas abaixo:

Ferramenta Detalhes
Hub de Desempenho Uma ferramenta rica em recursos prontamente disponível que está disponível na console da Oracle Cloud Infrastructure (OCI). O Hub de Desempenho também vem integrado com o Oracle Database Actions e o Oracle Enterprise Manager.

Consulte Monitorar o Desempenho do Banco de Dados com o Hub de Desempenho para obter mais detalhes.
Métricas do Autonomous AI Database As Métricas do Autonomous AI Database ajudam a medir dados quantitativos úteis, como a utilização de CPU e armazenamento, o número possível de tentativas de log-in e conexão bem-sucedidas e malsucedidas do banco de dados, operações de banco de dados, consultas SQL e transações, etc. Você pode usar dados de métricas para diagnosticar e solucionar problemas com seus recursos do Autonomous AI Database.

Consulte Monitorar Bancos de Dados com Métricas do Autonomous AI Database para obter mais informações, como pré-requisitos, uso e a lista de métricas disponíveis para o Autonomous AI Database na Infraestrutura Dedicada do Exadata.
AWR (Automatic Workload Repository) e ADDM (Automatic Database Diagnostic Monitor, Monitor de Diagnóstico Automático do Banco de Dados) Duas outras ferramentas comumente usadas são o Repositório Automático de Carga de Trabalho (AWR) e o Monitor de Diagnóstico Automático do Banco de Dados (ADDM).

O AWR armazena as estatísticas relacionadas ao desempenho de um banco de dados Oracle, e o ADDM é uma ferramenta do diagnóstico que analisa os dados AWR regularmente, localiza as causas-raiz de quaisquer problemas de desempenho, fornece recomendações para corrigir os problemas e identifica áreas sem problemas do sistema. Como o AWR é um repositório de dados históricos de desempenho, o ADDM pode analisar problemas de desempenho após o evento, geralmente economizando tempo e recursos na reprodução de um problema.

Para obter instruções sobre como usar essas ferramentas, bem como informações detalhadas sobre monitoramento e ajuste de desempenho do banco de dados, consulte o Oracle Database 19c Performance Tuning Guide ou o Oracle Database 26ai Performance Tuning Guide.

O AWR e o ADDM também estão disponíveis no Hub de Desempenho. Consulte Monitorar o Desempenho do Banco de Dados com o Hub de Desempenho para obter mais detalhes.

Para obter uma introdução rápida sobre o monitoramento e o ajuste de desempenho do banco de dados, consulte Oracle Database 19c 2 Day + Performance Tuning Guide ou Oracle Database 26ai 2 Day + Performance Tuning Guide.