Oracle SQLT - Amazon Relational Database Service

Oracle SQLT

O Amazon RDS dá suporte ao Oracle SQLTXPLAIN (SQLT) por meio do uso da opção SQLT.

A instrução EXPLAIN PLAN do Oracle pode determinar o plano de execução de uma instrução SQL. Ela pode verificar se o otimizador Oracle escolha um determinado plano de execução, como uma junção aninhada em loop. Ela também ajuda a compreender as decisões do otimizador, como por que escolheu uma junção aninhada em loop em uma junção de hash. Assim, EXPLAIN PLAN ajuda a compreender a performance da instrução.

SQLT é um utilitário Oracle que produz um relatório. O relatório inclui estatísticas de objeto, metadados de objeto, parâmetros de inicialização relacionados ao otimizador e outras informações que um administrador de banco de dados pode usar para ajustar uma instrução SQL para performance ideal. SQLT produz um relatório HTML com hiperlinks para todas as seções no relatório.

Diferentemente de relatórios Automatic Workload Repository ou Statspack, o SQLT funciona em instruções SQL individuais. O SQLT é uma coleção de arquivos SQL, PL/SQL e SQL*Plus que coletam, armazenam e exibem dados de performance.

A seguir estão as versões com suporte do Oracle para cada versão do SQLT.

Versão do SQLT Oracle Database 21c Oracle Database 19c Oracle Database 12c Versão 2 (12.2) Oracle Database 12c Versão 1 (12.1)

2018-07-25.v1

Compatível

Compatível

Compatível

Compatível

2018-03-31.v1

Sem suporte

Não suportado

Compatível

Compatível

2016-04-29.v1

Sem suporte

Não suportado

Compatível

Compatível

Para baixar o SQLT e as instruções de acesso para usá-lo:

É possível usar o SQLT com qualquer edição das seguintes versões do Oracle Database:

  • Oracle Database 21c (21.0.0.0)

  • Oracle Database

  • Oracle Database 12c Versão 2 (12.2.0.1)

  • Oracle Database 12c Versão 1 (12.1.0.2)

O Amazon RDS não oferece suporte aos seguintes métodos do SQLT:

  • XPLORE

  • XHUME

Pré-requisitos para o SQLT

Veja a seguir os pré-requisitos para usar o SQLT:

  • Será necessário remover usuários e funções solicitados pelo SQLT, se eles existirem.

    A opção do SQLT cria os seguintes usuários e as funções em uma instância de banco de dados:

    • SQLTXPLAINUsuário

    • SQLTXADMINUsuário

    • SQLT_USER_ROLEFunção

    Se a instância de banco de dados tiver algum desses usuários ou funções, faça login na instância de banco de dados usando um cliente SQL e os ignore usando as seguintes instruções:

    DROP USER SQLTXPLAIN CASCADE; DROP USER SQLTXADMIN CASCADE; DROP ROLE SQLT_USER_ROLE CASCADE;
  • Será necessário remover espaços de tabela solicitados pelo SQLT, se eles existirem.

    A opção do SQLT cria os seguintes espaços de tabela em uma instância de banco de dados:

    • RDS_SQLT_TS

    • RDS_TEMP_SQLT_TS

    Se a instância de banco de dados tiver esses espaços de tabela, faça login na instância de banco de dados usando um cliente SQL e os ignore.

Configurações de opção SQLT

O SQLT pode funcionar com recursos licenciados fornecidos pelo Oracle Tuning Pack e pelo Oracle Diagnostics Pack. O Oracle Tuning Pack inclui o SQL Tuning Advisor, e o Oracle Diagnostics Pack inclui o Automatic Workload Repository. As configurações do SQLT habilitam ou desabilitam acesso a esses recursos do SQLT.

O Amazon RDS oferece suporte para as seguintes configurações da opção SQLT.

Configuração da opção Valores válidos Valor padrão Descrição

LICENSE_PACK

T, D, N

N

Os Oracle Management Packs que você deseja acessar com o SQLT. Insira um dos seguintes valores:

  • T indica que você tem uma licença do Oracle Tuning Pack e do Oracle Diagnostics Pack e deseja acessar o SQL Tuning Advisor e o Automatic Workload Repository no SQLT.

  • D indica que você tem uma licença do Oracle Diagnostics Pack e deseja acessar o Automatic Workload Repository no SQLT.

  • N Indica que você não tem uma licença do Oracle Tuning Pack e do Oracle Diagnostics Pack, ou que você tem uma licença para um ou ambos, mas não deseja que o SQLT os acesse.

nota

O Amazon RDS não fornece licenças para esses Oracle Management Packs. Se indicar que deseja usar um pacote não incluído na instância de banco de dados, você poderá usar o SQLT com a instância de banco de dados. No entanto, o SQLT não consegue acessar o pacote, e o relatório SQLT não inclui os dados do pacote. Por exemplo, se você especificar T, mas a instância de banco de dados não incluir o Oracle Tuning Pack, o SQLT funcionará na instância de banco de dados, mas o relatório gerado não conterá dados relacionados ao Oracle Tuning Pack.

VERSION

2016-04-29.v1

2018-03-31.v1

2018-07-25.v1

2016-04-29.v1

A versão do SQLT que você deseja instalar.

nota

Para o Oracle Database 19c e 21c, a única versão compatível é 2018-07-25.v1. Para essas versões, essa é a padrão.

Adicionar a opção SQLT

Este é o processo geral para adicionar as opções do SQLT a uma instância de banco de dados:

  1. Crie um novo grupo de opções, ou copie ou modifique um existente.

  2. Adicione a opção SQLT ao grupo de opções.

  3. Associe o grupo de opções à instância de banco de dados.

Depois de adicionar a opção SQLT, assim que o grupo de opções estiver ativo, o SQLT ficará ativo.

Para adicionar a opção SQLT a uma instância de banco de dados

  1. Determine o grupo de opções que você deseja usar. Você pode criar um novo grupo de opções ou usar um existente. Se você quiser usar um grupo de opções existente, vá para a próxima etapa. Caso contrário, crie um grupo de opções de banco de dados personalizado com as seguintes configurações:

    1. Para Engine (Mecanismo), escolha a edição do Oracle que deseja usar. A opção do SQLT é compatível em todas as edições.

    2. Para Major engine version (Versão do mecanismo principal), escolha a versão da sua instância de banco de dados.

    Para obter mais informações, consulte Criar um grupo de opções.

  2. Adicione a opção SQLT ao grupo de opções. Para mais informações sobre a adição de opções, consulte Adicionar uma opção a um grupo de opções.

  3. Aplique o grupo de opções a uma instância de banco de dados nova ou existente:

  4. (Opcional) Verifique a instalação do SQLT em cada instância de banco de dados com a opção do SQLT.

    1. Use um cliente SQL para se conectar à instância de banco de dados como o usuário mestre.

      Para obter informações sobre como se conectar a uma instância de banco de dados Oracle usando um cliente SQL, consulte Conectar-se a uma instância de banco de dados Oracle.

    2. Execute a seguinte consulta:

      SELECT sqltxplain.sqlt$a.get_param('tool_version') sqlt_version FROM DUAL;

      A consulta retorna a versão atual da opção do SQLT no Amazon RDS. 12.1.160429 é um exemplo de uma versão do SQLT disponível no Amazon RDS.

  5. Altere as senhas dos usuários criados pela opção do SQLT.

    1. Use um cliente SQL para se conectar à instância de banco de dados como o usuário mestre.

    2. Execute a seguinte instrução SQL para alterar a senha do usuário SQLTXADMIN:

      ALTER USER SQLTXADMIN IDENTIFIED BY new_password ACCOUNT UNLOCK;
    3. Execute a seguinte instrução SQL para alterar a senha do usuário SQLTXPLAIN:

      ALTER USER SQLTXPLAIN IDENTIFIED BY new_password ACCOUNT UNLOCK;
nota

Atualizar o SQLT exige desinstalar uma versão mais antiga do SQLT e instalar a nova versão. Dessa forma, todos os metadados do SQLT podem ser perdidos quando você atualiza o SQLT. Uma atualização de versão principal de um banco de dados também desinstala e reinstala o SQLT. Um exemplo de uma atualização de versão principal é uma atualização do Oracle Database 12c Versão 2 (12.2) para o Oracle Database 19c.

Uso de SQLT

O SQLT funciona com o utilitário Oracle SQL*Plus.

Para usar o SQLT

  1. Baixe o arquivo .zip SQLT no Documento 215187.1 no site do My Oracle Support.

    nota

    Não é possível baixar o SQLT 12.1.160429 do site do My Oracle Support. A Oracle desativou essa versão mais antiga.

  2. Descompacte o arquivo .zip do SQLT.

  3. Em um prompt de comando, altere o diretório sqlt/run no sistema de arquivos.

  4. No prompt de comando, abra o SQL*Plus e se conecte à instância de banco de dados como o usuário mestre.

    Para obter mais informações sobre como se conectar a uma instância de banco de dados usando o SQL *Plus, consulte Conectar-se a uma instância de banco de dados Oracle.

  5. Obtenha o ID do SQL de uma instrução SQL:

    SELECT SQL_ID FROM V$SQL WHERE SQL_TEXT='sql_statement';

    A saída é semelhante à seguinte:

    SQL_ID ------------- chvsmttqjzjkn
  6. Analise uma instrução SQL com o SQLT:

    START sqltxtract.sql sql_id sqltxplain_user_password

    Por exemplo, para o ID SQL chvsmttqjzjkn, insira o seguinte:

    START sqltxtract.sql chvsmttqjzjkn sqltxplain_user_password

    O SQLT gera o relatório HTML e os recursos relacionados como um arquivo .zip no diretório no qual o comando do SQLT foi executado.

  7. (Opcional) Para permitir que usuários do aplicativo façam diagnóstico de instruções SQL com o SQLT, conceda SQLT_USER_ROLE a cada usuário do aplicativo com a seguinte instrução:

    GRANT SQLT_USER_ROLE TO application_user_name;
    nota

    O Oracle não recomenda executar o SQLT com o usuário SYS ou com os usuários que tenham a função DBA. Trata-se de uma melhor prática executar o diagnóstico do SQLT usando a conta do usuário do aplicativo concedendo SQLT_USER_ROLE ao usuário do aplicativo.

Atualizar a opção SQLT

Com o Amazon RDS for Oracle, você pode atualizar a opção SQLT da sua versão existente para uma versão superior. Para atualizar a opção SQLT, conclua as etapas 1 – 3 em Uso de SQLT para a nova versão do SQLT. Além disso, se você tiver concedido privilégios na versão anterior do SQLT, na etapa 7 daquela seção, conceda os privilégios novamente na nova versão do SQLT.

A atualização da opção SQLT resulta na perda dos metadados da versão anterior do SQLT. O esquema e os objetos relacionados da versão anterior do SQLT são descartados e a nova versão do SQLT é instalada. Para obter mais informações sobre as alterações na versão mais recente do SQLT, consulte Documento 1614201.1 no site My Oracle Support.

nota

Downgrades de versões não são compatíveis.

Modificar as configurações do SQLT

Depois de habilitar o SQLT, você pode modificar as configurações de LICENSE_PACK e VERSION para essa opção.

Para mais informações sobre como modificar as configurações da opção, consulte Modificar uma configuração de opção. Para mais informações sobre cada configuração, consulte Configurações de opção SQLT.

Remover a opção SQLT

Você pode remover o SQLT de uma instância de banco de dados.

Para remover o SQLT de uma instância de banco de dados, siga um destes procedimentos:

  • Para remover o SQLT de várias instâncias de bancos de dados, remova a opção SQLT do grupo de opções ao qual as instâncias de banco de dados pertencem. Essa alteração afeta todas as instâncias de bancos de dados que usam o grupo de opções. Para obter mais informações, consulte Remover uma opção de um grupo de opções.

  • Para remover o SQLT de uma única instância de banco de dados, modifique essa instância e especifique um grupo de opções diferente que não inclua a opção SQLT. Você pode especificar um grupo de opções padrão (vazio) ou criar um grupo de opções personalizado diferente. Para obter mais informações, consulte Modificar uma instância de banco de dados do Amazon RDS.