Usar o Rastreamento SQL no Autonomous AI Database na Infraestrutura Dedicada do Exadata
Você pode usar o Rastreamento SQL com o Autonomous AI Database na Infraestrutura Dedicada do Exadata para ajudar a identificar a origem de uma carga de trabalho excessiva do banco de dados, como uma instrução SQL de alta carga em seu aplicativo.
Sobre 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. Para rastrear instruções SQL, implemente as seguintes tarefas como usuário ADMIN:
-
Comece configurando o banco de dados para salvar arquivos de Rastreamento SQL. Consulte Configurar Rastreamento de SQL no Autonomous AI Database para obter mais informações.
-
Em seguida, ative o rastreamento SQL. Consulte Ativar Rastreamento SQL no Autonomous AI Database.
Observação: A ativação do rastreamento SQL pode prejudicar o desempenho do aplicativo para a sessão enquanto a coleta de rastreamento está ativada. Esse impacto no desempenho é esperado devido à sobrecarga de coleta e salvamento de dados de rastreamento.
-
Para interromper a coleta de dados de rastreamento SQL, desative o rastreamento SQL. Consulte Desativar Rastreamento SQL.
-
Quando você desativa o rastreamento SQL, os dados de rastreamento coletados enquanto a sessão é executada com o rastreamento ativado são gravados na view
SESSION_CLOUD_TRACEda sua sessão e em um arquivo de rastreamento no bucket, que você configura ao configurar o rastreamento SQL. Você tem duas opções para exibir os dados de rastreamento:-
Exiba e analise dados de Rastreamento SQL no arquivo de rastreamento salvo no Cloud Object Store. Consulte Exibir Arquivo de Rastreamento Salvo no Cloud Object Store no Autonomous AI Database para obter mais informações.
-
Exiba e analise os dados de Rastreamento SQL salvos na view
SESSION_CLOUD_TRACE. Consulte Exibir Dados de Rastreamento na View SESSION_CLOUD_TRACE no Autonomous AI Database para obter mais informações.
-
Configurar o Rastreamento de SQL no Autonomous AI Database
Para configurar seu Autonomous AI Database para rastreamento de SQL, faça o seguinte:
-
Crie um bucket para armazenar arquivos de rastreamento no Cloud Object Storage.
Para salvar os arquivos de rastreamento SQL, o bucket pode estar em qualquer Cloud Object Store compatível com o Autonomous AI Database. Por exemplo, para criar um bucket no Oracle Cloud Infrastructure Object Storage, consulte Criando um Bucket.
Dica: Certifique-se de selecionar Padrão como a camada de armazenamento ao criar seu bucket no Oracle Cloud Infrastructure Object Storage porque só há suporte para arquivos de rastreamento SQL com buckets criados na camada de armazenamento padrão. Para obter informações sobre a Camada de Armazenamento de Objetos Padrão, consulte Noções Básicas de Camadas de Armazenamento.
-
Crie uma credencial para sua conta do Cloud Object Storage usando
DBMS_CLOUD.CREATE_CREDENTIAL.Por exemplo:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'DEF_CRED_NAME', username => 'adb_user@example.com', password => 'password' );END; /Consulte Procedimento CREATE_CREDENTIAL para obter detalhes sobre os argumentos para os parâmetros
usernameepasswordpara diferentes serviços de armazenamento de objetos. -
Defina parâmetros de inicialização para especificar o URL do Cloud Object Storage de um bucket para arquivos de rastreamento SQL e para especificar as credenciais para acessar o Cloud Object Storage.
-
Defina a propriedade do banco de dados
DEFAULT_LOGGING_BUCKETpara especificar o bucket de log no Cloud Object Storage.Por exemplo, se você criar o bucket com o Oracle Cloud Infrastructure (OCI) Object Storage:
SET DEFINE OFF; ALTER DATABASE PROPERTY SET DEFAULT_LOGGING_BUCKET = 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/bucket_name/o/';Em que
namespace-stringé o namespace do OCI Object Storage e bucket_name é o nome do bucket criado anteriormente. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações.Consulte Regiões e Domínios de Disponibilidade para obter uma lista de regiões.
O Cloud Object Store que você usa para arquivos de Rastreamento SQL pode ser qualquer Cloud Object Store compatível com o Autonomous AI Database.
-
A propriedade
DEFAULT_CREDENTIALdo banco de dados foi definida para a credencial criada na Etapa 2.Por exemplo:
ALTER DATABASE PROPERTY SET DEFAULT_CREDENTIAL = 'ADMIN.DEF_CRED_NAME';É necessário incluir o nome do esquema com a credencial. Neste exemplo, o esquema é
ADMIN.
-
Ativar Rastreamento SQL no Autonomous AI Database
Observação: A ativação do rastreamento SQL pode prejudicar o desempenho do aplicativo para a sessão enquanto a coleta de rastreamento está ativada. Esse impacto no desempenho é esperado devido à sobrecarga de coleta e salvamento de dados de rastreamento.
Para ativar o rastreamento SQL para uma sessão de banco de dados, faça o seguinte:
-
Opcionalmente, defina um identificador de cliente para o aplicativo. A etapa é opcional, mas é recomendada. O rastreamento SQL usa o identificador do cliente como um componente do nome do arquivo de rastreamento quando o arquivo de rastreamento é gravado no Cloud Object Store.
Por exemplo:
BEGIN DBMS_SESSION.SET_IDENTIFIER('sqlt_test'); END; / -
Opcionalmente, defina um nome de módulo para o aplicativo. A etapa é opcional, mas é recomendada. O rastreamento SQL usa o nome do módulo como um componente do nome do arquivo de rastreamento quando o arquivo de rastreamento é gravado no Cloud Object Store.
Por exemplo:
BEGIN DBMS_APPLICATION_INFO.SET_MODULE('modname', null); END; / -
Ative o recurso Rastreamento SQL.
ALTER SESSION SET SQL_TRACE = TRUE; -
Execute sua carga de trabalho.
Esta etapa envolve a execução de todo o aplicativo ou de partes específicas do aplicativo. Enquanto você executa sua carga de trabalho na sessão do banco de dados, os dados de rastreamento SQL são coletados.
-
Desativar rastreamento SQL.
Quando você desativa o rastreamento SQL, os dados coletados da sessão são gravados em uma tabela da sua sessão e em um arquivo de rastreamento no bucket que você configura ao configurar o rastreamento SQL.
Desativar rastreamento SQL
Para desativar o rastreamento SQL, faça o seguinte:
-
Desative o recurso de Rastreamento SQL.
ALTER SESSION SET SQL_TRACE = FALSE; -
Se preferir, conforme necessário para seu ambiente, você poderá redefinir a propriedade do banco de dados
DEFAULT_LOGGING_BUCKETpara limpar o valor do bucket de log no Cloud Object Storage.Por exemplo:
ALTER DATABASE PROPERTY SET DEFAULT_LOGGING_BUCKET = '';
Quando você desativa o rastreamento SQL, os dados de rastreamento coletados enquanto a sessão é executada com o rastreamento ativado são copiados para uma tabela e enviados para um arquivo de rastreamento no Cloud Object Store.
Exibir Arquivo de Rastreamento Salvo no Cloud Object Store no Autonomous AI Database
Você usa dados de arquivo de rastreamento SQL para analisar o desempenho do aplicativo no Autonomous AI Database. Quando você desativa o rastreamento SQL em sua sessão de banco de dados, os dados são gravados no bucket do Cloud Object Store configurado com DEFAULT_LOGGING_BUCKET.
O recurso de Rastreamento SQL grava os dados de rastreamento coletados na sessão no Cloud Object Store no seguinte formato:
default_logging_bucket/sqltrace/clientID/moduleName/sqltrace_numID1_numID2.trc
Os componentes do nome do arquivo são:
-
default_logging_bucket: é o valor da propriedade do banco de dados
DEFAULT_LOGGING_BUCKET. Consulte Configurar Rastreamento de SQL no Autonomous AI Database para obter mais informações. -
clientID: é o identificador do cliente. Consulte Ativar Rastreamento SQL no Autonomous AI Database para obter mais informações. -
moduleName: é o nome do módulo. Consulte Ativar Rastreamento SQL no Autonomous AI Database para obter mais informações. -
numID1_numID2: são dois identificadores que o recurso de Rastreamento SQL fornece. Os valores numéricosnumID1enumID2distinguem exclusivamente cada nome de arquivo de rastreamento de outras sessões usando o rastreamento e criando arquivos de rastreamento no mesmo bucket no Cloud Object Storage.Quando o serviço de banco de dados suporta paralelismo e uma sessão executa uma consulta paralela, o recurso de Rastreamento SQL pode produzir vários arquivos de rastreamento com valores
numID1enumID2diferentes.Observação: Quando o rastreamento SQL é ativado e desativado várias vezes dentro da mesma sessão, cada iteração de rastreamento gera um arquivo de rastreamento separado no Cloud Object Store. Para evitar a substituição de rastreamentos anteriores que foram gerados na sessão, os arquivos gerados subsequentemente seguem a mesma convenção de nomenclatura e adicionam um sufixo numérico ao nome do arquivo de rastreamento. Este sufixo numérico começa com o número 1 e é incrementado em 1 para cada iteração de rastreamento posteriormente.
Por exemplo, o seguinte é um exemplo de nome de arquivo de rastreamento gerado quando você define o identificador do cliente como "sql_test" e o nome do módulo como "modname":
sqltrace/sqlt_test/modname/sqltrace_5415_56432.trc
Você pode executar TKPROF para converter o arquivo de rastreamento em um arquivo de saída legível.
-
Copie o arquivo de rastreamento do Object Store para o sistema local.
-
Navegue até o diretório no qual o arquivo de rastreamento é salvo.
-
Execute o utilitário
TKPROFno prompt do sistema operacional usando a seguinte sintaxe:tkprof filename1 filename2 [waits=yes|no] [sort=option] [print=n] [aggregate=yes|no] [insert=filename3] [sys=yes|no] [table=schema.table] [explain=user/password] [record=filename4] [width=n]Os arquivos de entrada e saída são os únicos argumentos necessários.
-
Para exibir a Ajuda on-line, chame
TKPROFsem argumentos.Para obter informações sobre o uso do utilitário
TKPROF, consulte Tools for End-to-End Application Tracing no Oracle Database 19c SQL Tuning Guide ou no Oracle Database 26ai SQL Tuning Guide.
Exibir Dados de Rastreamento na View SESSION_CLOUD_TRACE no Autonomous AI Database
Quando você ativa o Rastreamento SQL, as mesmas informações de rastreamento salvas no arquivo de rastreamento no Cloud Object Store ficam disponíveis na exibição SESSION_CLOUD_TRACE na sessão em que o rastreamento foi ativado.
Enquanto você ainda estiver na sessão de banco de dados, poderá exibir dados de rastreamento SQL na exibição SESSION_CLOUD_TRACE. A view SESSION_CLOUD_TRACE inclui duas colunas: ROW_NUMBER e TRACE.
DESC SESSION_CLOUD_TRACE
Name Null? Type
---------- ----- ------------------------------
ROW_NUMBER NUMBER
TRACE VARCHAR2(32767)
O ROW_NUMBER especifica a ordenação dos dados de rastreamento encontrados na coluna TRACE. Cada linha de saída de rastreamento gravada em um arquivo de rastreamento se torna uma linha na tabela e está disponível na coluna TRACE.
Depois de desativar o rastreamento SQL da sessão, você poderá executar consultas na exibição SESSION_CLOUD_TRACE.
Por exemplo:
SELECT trace FROM SESSION_CLOUD_TRACE ORDERBY row_number;
Os dados no SESSION_CLOUD_TRACE persistem durante a sessão. Depois de fazer logout ou fechar a sessão, os dados não estarão mais disponíveis.
Se o Rastreamento SQL estiver ativado e desativado várias vezes dentro da mesma sessão, SESSION_CLOUD_TRACE mostrará os dados de rastreamento para todas as iterações cumulativamente. Assim, reativar o rastreamento em uma sessão após desabilitar o rastreamento anteriormente não remove os dados de rastreamento produzidos pela iteração anterior.