Recursos de Alto Desempenho no Autonomous Database no Exadata Infrastructure Dedicado
Este artigo descreve os principais recursos de ajuste de desempenho no Autonomous Database on Dedicated Exadata Infrastructure.
Observe que, ao longo desta seção, o termo "você" é amplamente usado para significar qualquer usuário em sua organização que tenha a responsabilidade de executar determinadas tarefas. Em alguns casos, esse é o DBA do aplicativo, em outros é o desenvolvedor do aplicativo.
O Autonomous Database inclui vários recursos que monitorar, analisar e otimizar automaticamente o desempenho de seu banco de dados. Para obter uma lista completa dos recursos de ajuste SQL e gerenciamento de desempenho do Oracle Autonomous Database e instruções sobre como usá-los, consulte o Oracle Database 19c SQL Tuning Guide ou o Oracle Database 23ai SQL Tuning Guide.
Você pode ver uma ampla categorização dos principais recursos de ajuste de desempenho do Autonomous Database descritos abaixo.
Dica:
Na imagem a seguir, você pode clicar no recurso que deseja explorar mais.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.
Dica:
Certifique-se de revisar 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 estabelecer conexões com seu Autonomous 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:
- Reduz o número de criações de novos objetos de conexão.
- Promove a reutilização do objeto de conexão.
- Acelera o processo de obtenção de uma conexão.
- Controla a quantidade de recursos gastos na manutenção de conexões.
- Reduz o volume de esforço de codificação necessário para gerenciar manualmente objetos de conexão.
Recursos de Conexão de Finalidades Especiais
-
Identificação de localização é um recurso útil em determinados aplicativos de processamento de transações. Se o seu aplicativo fizer conexões repetidamente com o mesmo serviço de banco de dados, a tag de co-localização permitirá que todas essas conexões sejam direcionadas para a mesma instância do banco de dados, ignorando o processamento do balanceamento de carga normalmente feito no banco de dados das conexões. Para obter mais informações, consulte COLOCATION_TAG de Conexões de Cliente no Oracle Database 19c ou Oracle Database 23ai.
-
Configuração do Servidor Compartilhado é outro recurso que o Autonomous Database suporta para manter aplicativos legados projetados sem pooling. A arquitetura de servidor compartilhado permite que o servidor de banco de dados permita que muitos processos de cliente compartilhem muito poucos processos de servidor. Isso aumenta o número de usuários que o aplicativo pode suportar. O uso da arquitetura de servidor compartilhado para esses aplicativos legados permite que eles sejam expandidos sem fazer alterações no próprio aplicativo.
Você pode ativar conexões de servidor compartilhado ao provisionar um ACD (Autonomous Container Database) e essa definição se aplica a todos os bancos de dados criados nele. Consulte Criar um Autonomous Container Database para obter instruções.
Consulte também o Oracle Database 19c Net Services Administrator's Guide ou o Oracle Database 23ai Net Services Administrator's Guide para obter informações mais detalhadas sobre servidores compartilhados, incluindo recursos como multiplexação de sessão.
Depois que a conexão do Servidor Compartilhado for ativada para o Autonomous Container Database, não será necessário alterar a string de conexão. A configuração padrão é definida como Dedicada.
Observação:
Você não pode desativar um Servidor Compartilhado para um Autonomous Database específico criado em um Autonomous Container Database ativado para Servidor Compartilhado e não pode usar uma conexão Dedicada para Autonomous Databases criados em um Autonomous Container Database ativado para Servidor Compartilhado.
Recursos de Ajuste de Desempenho SQL
Bons aplicativos começam com uma SQL bem escrita. O Oracle Autonomous Database fornece vários recursos que permitem criar aplicativos de alto desempenho e validar seu código SQL e PL/SQL. Alguns desses recursos estão listados abaixo:
- Indexação Automática
- Estatísticas e Dicas do Otimizador
- Resolução automática de regressões do plano SQL
- Quarentena automática de instruções SQL
- Gerenciamento de Planos SQL
- Conjuntos de Ajuste SQL
- Rastreamento SQL
À medida que desenvolve seu aplicativo, você pode aprender rapidamente como esses recursos estão afetando o código SQL que você escreve e, portanto, melhorar seu código usando a Planilha SQL fornecida pelo Oracle Database Actions (que é incorporada ao seu Autonomous Database) e ao Oracle SQL Developer (um aplicativo gratuito instalado no seu sistema de 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 tempo gasto por essa instrução SQL nas fases de parsing, execução e extração ajudará você a identificar e resolver a causa do problema de desempenho. Você pode usar o rastreamento de SQL em um Autonomous Database para fazer isso.
O rastreamento de SQL é desativado por padrão no Autonomous Database. Ative-o para começar a coletar os dados de rastreamento SQL. Consulte Usar Rastreamento de SQL no Autonomous Database para obter instruções detalhadas para ativar e usar o Rastreamento de SQL.
Estatísticas do Otimizador
O Autonomous Database coleta estatísticas do otimizador automaticamente para que você não precise executar essa tarefa manualmente, e isso ajuda a garantir que suas estatísticas estejam atualizadas. A coleta automática de estatísticas está ativada no Autonomous Database e é executada em uma janela de manutenção padrão.
Observação:
Para obter mais informações sobre tempos de janela de manutenção e coleta automática de estatísticas do otimizador, consulte o Oracle Database 19c Administrator's Guide ou o Oracle Database 23ai Administrator's Guide.
For more information on optimizer statistics see Oracle Database 19c SQL Tuning Guide or Oracle Database 23ai 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.
PARALLEL
diferem dependendo da sua carga de trabalho:
-
Autonomous Data Warehouse: O Autonomous Database com Data Warehouse ignora dicas do otimizador e dicas
PARALLEL
em instruções SQL por padrão.Se seu aplicativo depende de dicas, você pode ativar dicas do otimizador definindo o parâmetro
OPTIMIZER_IGNORE_HINTS
comoFALSE
no nível da sessão ou do sistema usandoALTER SESSION
ouALTER SYSTEM
.Por exemplo, o comando a seguir ativa dicas em sua sessão:ALTER SESSION SET OPTIMIZER_IGNORE_HINTS=FALSE;
Você também pode ativar dicas
PARALLEL
em suas instruções SQL definindoOPTIMIZER_IGNORE_PARALLEL_HINTS
comoFALSE
no nível da sessão ou do sistema usandoALTER SESSION
ouALTER SYSTEM
.Por exemplo, o seguinte comando ativa dicasPARALLEL
na sua sessão:ALTER SESSION SET OPTIMIZER_IGNORE_PARALLEL_HINTS=FALSE;
-
Autonomous Transaction Processing: O Autonomous Database honra dicas do otimizador e dicas
PARALLEL
em instruções SQL por padrão.Você pode desativar dicas do otimizador definindo o parâmetro
OPTIMIZER_IGNORE_HINTS
comoTRUE
no nível da sessão ou do sistema usandoALTER SESSION
ouALTER SYSTEM
.Por exemplo, o comando a seguir desativa dicas na sua sessão:
ALTER SESSION SET OPTIMIZER_IGNORE_HINTS=TRUE;
Você também pode desativar dicas
PARALLEL
nas suas instruções SQL definindoOPTIMIZER_IGNORE_PARALLEL_HINTS
comoTRUE
no nível da sessão ou do sistema usandoALTER SESSION
ouALTER SYSTEM
.Por exemplo, o seguinte comando ativa dicas
PARALLEL
na sua sessão:ALTER SESSION SET OPTIMIZER_IGNORE_PARALLEL_HINTS=TRUE;
Indexação Automática
A indexação automática automatiza as tarefas de gerenciamento de índice no Autonomous Database. A indexação automática é desativada por padrão no Autonomous 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 Database monitora a carga de trabalho do aplicativo e cria e mantém índices automaticamente.
Dica:
Para ter a opção de "testar" que demonstra essas instruções, confira o Lab 14: Automatic Indexing no Oracle Autonomous Database Dedicated for Developers and Database Users Workshop.- Use o procedimento
DBMS_AUTO_INDEX.CONFIGURE
para ativar a indexação automática. Por exemplo, executar a instrução abaixo permite a indexação automática em um banco de dados e cria novos índices automáticos como índices visíveis, para que possam ser usados em instruções SQL.EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','IMPLEMENT');
- Use o pacote
DBMS_AUTO_INDEX
para reportar a tarefa automática e definir preferências de indexação automáticas.Observação:
Observação: Quando a indexação automática está ativada, a compactação de índice para índices automáticos é ativada por padrão.
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 no Oracle Database 23ai 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 pool grande para armazenar as inserções em buffer antes de gravá-las no disco, a fim de melhorar o desempenho da inserção de dados.
A intenção do fast-ingest é dar suporte a aplicativos que geram muitos dados informativos que têm valor importante no agregado, mas que não necessariamente exigem garantias ACID completas. Muitos aplicativos na Internet of Things (IoT) 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 de transações normal do Oracle Database, em que os dados são registrados e nunca são perdidos uma vez "gravados" no banco de dados (ou seja, com commit). Para obter o throughput máximo de ingestão, os mecanismos de transação normais 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 Oracle Database 23ai Performance Tuning Guide.
-
Ativar o Otimizador para Usar Dicas: Defina o parâmetro
optimizer_ignore_hints
comoFALSE
no nível da sessão ou do sistema, conforme apropriado.Dependendo do tipo de carga de trabalho do Autonomous Database, por padrão,
optimizer_ignore_hints
pode ser definido comoFALSE
no nível do sistema. Consulte Estatísticas do Otimizador para obter mais informações. - Criar uma Tabela para Ingestão Rápida: Consulte o Oracle Database 19c Performance Tuning Guide ou o Oracle Database 23ai Performance Tuning Guide para obter as limitações das tabelas elegíveis para Ingestão Rápida (tabelas com as características especificadas não podem usar ingestão rápida).
Classes de Job Predefinidas com o Oracle Scheduler
O Autonomous Database inclui valores job_class
predefinidos a serem usados com o Oracle Scheduler. Essas classes de cargo permitem agrupar cargos que compartilham características e comportamentos 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 seus cargos críticos tenham prioridade e recursos suficientes para serem concluídos. 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 dentro de uma classe de cargo.
Os valores predefinidos job_class
, TPURGENT
, TP
, HIGH
, MEDIUM
e LOW
, são mapeados para os grupos de consumidores correspondentes. Essas classes de job permitem que você especifique o grupo de consumidores em que 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 Database.
Por exemplo: use o seguinte comando 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:
-
Para usar
DBMS_SCHEDULER.CREATE_JOB
, concessões adicionais para atribuições ou privilégios específicos podem ser necessárias. O usuárioADMIN
e os usuários comDWROLE
têm os privilégiosCREATE SESSION
eCREATE JOB
obrigatórios. Se um usuário não tiverDWROLE
, serão exigidas concessões para os privilégiosCREATE SESSION
eCREATE JOB
. -
O atributo de job
instance_id
é ignorado para jobs do Oracle Scheduler em execução no Autonomous Database.
Consulte Programando Jobs com o Oracle Scheduler no Oracle Database 19c ou no Oracle Database 23ai para obter mais informações sobre o Oracle Scheduler e o DBMS_SCHEDULER.CREATE_JOB
.
Consulte Procedimento SET_ATTRIBUTE no Oracle Database 19c ou no Oracle Database 23ai para obter informações sobre atributos do job.
Ferramentas de Monitoramento e Ajuste do Desempenho
Ferramenta | Detalhes |
---|---|
Hub de Desempenho |
Uma ferramenta rica em recursos prontamente disponível que está disponível na console do OCI (Oracle Cloud Infrastructure). 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 Database |
As Métricas do Autonomous Database ajudam você a medir dados quantitativos úteis, como utilização de CPU e armazenamento, número de tentativas bem-sucedidas e com falha de log-in e conexão de banco de dados, operações de banco de dados, consultas SQL e transações etc. Você pode usar dados de métrica para diagnosticar e solucionar problemas com seus recursos do Autonomous Database. Consulte Monitorar Bancos de Dados com Métricas do Autonomous Database para obter mais informações, como pré-requisitos, uso e a lista de métricas disponíveis para o Autonomous Database on Dedicated Exadata Infrastructure. |
Repositório Automático de Carga de Trabalho (AWR) e Monitor Automático de Diagnóstico de Banco de Dados (ADDM) |
Duas outras ferramentas comumente usadas são o AWR (Automatic Workload Repository) e o ADDM (Automatic Database Diagnostic Monitor). O AWR armazena estatísticas relacionadas ao desempenho de um banco de dados Oracle e o ADDM é uma ferramenta de diagnóstico que analisa dados do AWR regularmente, localiza causas raiz de quaisquer problemas de desempenho, fornece recomendações para corrigir os problemas e identifica áreas não problemáticas 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, 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 do desempenho do banco de dados, consulte o Guia de Ajuste de Desempenho do Oracle Database 19c ou o Guia de Ajuste de Desempenho do Oracle Database 23ai. 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 rápida introdução ao monitoramento e ao ajuste de desempenho do banco de dados, consulte Guia de Ajuste de Desempenho + 2 Dias do Oracle Database 19c ou Guia de Ajuste de Desempenho + 2 Dias do Oracle Database 23ai. |