Oracle SQLT
O Amazon RDS dá suporte ao Oracle SQLTXPLAIN (SQLT) por meio do uso da opção SQLT. É possível usar o SQLT com qualquer edição do Oracle Database 19c e posterior.
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 |
---|---|---|
2018-07-25.v1 |
Compatível |
Compatível |
2018-03-31.v1 |
Sem compatibilidade |
Sem compatibilidade |
2016-04-29.v1 |
Sem compatibilidade |
Sem compatibilidade |
Para baixar o SQLT e as instruções de acesso para usá-lo:
Faça login na conta My Oracle Support e abra os documentos a seguir:
Para baixar o SQLT: Documento 215187.1
Para obter instruções de uso do SQLT: Documento 1614107.1
Para ver as perguntas frequentes sobre o SQLT, consulte Documento 1454160.1
. Para obter informações sobre como ler a saída do SQLT: Documento 1456176.1
Para a interpretação do relatório principal: Documento 1922234.1
O Amazon RDS não é compatível com os 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:
SQLTXPLAIN
UsuárioSQLTXADMIN
UsuárioSQLT_USER_ROLE
Funçã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 |
---|---|---|---|
|
|
|
Os Oracle Management Packs que você deseja acessar com o SQLT. Insira um dos seguintes valores:
notaO 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 |
|
|
|
A versão do SQLT que você deseja instalar. notaPara o Oracle Database 19c e 21c, a única versão compatível é |
Adicionar a opção SQLT
Este é o processo geral para adicionar as opções do SQLT a uma instância de banco de dados:
Crie um novo grupo de opções, ou copie ou modifique um existente.
Adicione a opção SQLT ao grupo de opções.
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
-
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:
-
Para Engine (Mecanismo), escolha a edição do Oracle que deseja usar. A opção do SQLT é compatível em todas as edições.
-
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.
-
-
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.
-
Aplique o grupo de opções a uma instância de banco de dados nova ou existente:
-
Para uma nova instância de banco de dados, você aplica o grupo de opções ao executar a instância. Para ter mais informações, consulte Criar uma instância de banco de dados do Amazon RDS.
-
Para uma instância de banco de dados existente, você aplica o grupo de opções modificando a instância e anexando o novo grupo de opções. Para obter mais informações, consulte Modificar uma instância de banco de dados do Amazon RDS.
-
-
(Opcional) Verifique a instalação do SQLT em cada instância de banco de dados com a opção do SQLT.
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 do RDS para Oracle.
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.
Altere as senhas dos usuários criados pela opção do SQLT.
Use um cliente SQL para se conectar à instância de banco de dados como o usuário mestre.
Execute a seguinte instrução SQL para alterar a senha do usuário
SQLTXADMIN
:ALTER USER SQLTXADMIN IDENTIFIED BY
new_password
ACCOUNT UNLOCK;nota
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.
Execute a seguinte instrução SQL para alterar a senha do usuário
SQLTXPLAIN
:ALTER USER SQLTXPLAIN IDENTIFIED BY
new_password
ACCOUNT UNLOCK;nota
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.
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 19c para o Oracle Database 21c.
Uso de SQLT
O SQLT funciona com o utilitário Oracle SQL*Plus.
Para usar o SQLT
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.
Descompacte o arquivo .zip do SQLT.
Em um prompt de comando, altere o diretório
sqlt/run
no sistema de arquivos.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 do RDS para Oracle.
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
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.
(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çãoDBA
. Trata-se de uma melhor prática executar o diagnóstico do SQLT usando a conta do usuário do aplicativo concedendoSQLT_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
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 ter mais informações, consulteModificar uma instância de banco de dados do Amazon RDS