sexta-feira, 3 de fevereiro de 2017
SQLTXPLAIN
O SQLTXPLAIN ou SQLT, é uma ferramenta fornecida pelo Centro de Especialização de Tecnologias de Servidor Oracle - ST CoE.
O SQLT insere uma instrução SQL e emite um conjunto de arquivos de diagnóstico.
Esses arquivos são comumente usados para diagnosticar instruções SQL com desempenho ruim.
O SQLT conecta-se ao banco de dados e coleta planos de execução, estatísticas CBO com otimizador de custos, metadados de objetos de esquema, estatísticas de desempenho, parâmetros de configuração e elementos similares que influenciam o desempenho do SQL que está sendo analisado.
Para utilizarmos essa ferramenta, podemos seguir os passos abaixo:
Obs.: Os passos 1,2 3 só serão necessários se ainda não tivermos o SQLT instalado ou a versão instalada ser muito antiga.
1- Download do SQLT
Faça o download da última versão do SQLT seguindo o documento Oracle 215187.1;
2- Descompactar arquivo SQLT
Após baixar o arquivo sqlt.zip, devemos descompactar esse arquivo no servidor.
O ideal é que esse arquivo seja descompactado em um diretório com permissão de escrita/leitura para o usuário Oracle.
Para descompactar, podemos usar o comando:
$unzip sqlt.zip
3- Instalar o SQLT
Após descompactado, teremos que fazer a instalação do SQLT no banco de dados e para isso, devemos:
- ir para o diretório /install, localizado dentro do diretório gerado pela descompactação do sqlt.zip
- Conectar no banco de dados com o usuário SYSDBA / SYS
- Executar o script sqcreate.sql
- Deveremos informar dois parâmetros:
- O tipo de licença que possuímos para o produto;
- Uma senha para o SQLTXPLAIN
4 - Executar o SQLT
Existe mais de um tipo de execução do SQLT, cada um com uma finalidade diferente, conforme podemos verificar no documento (Doc ID 215187.1).
Os principais métodos do SQLT são:
XTRACT
XECUTE
XTRXEC
XPLAIN
XTRSBY
XPREXT
XPREXC
Neste caso, vamos executar a opção XTRACT
Para executarmos o SQLT, devemos:
- Ir para o diretório ./run, localizado dentro do diretório gerado pela descompactação do sqlt.zip;
- Acessar o banco de dados e obter o SQL_ID da sessão que queremos analisar;
- Conectar no banco de dados com o usuário utilizado para executar o SQL que queremos analisar - Não executar com o usuário SYS,SYSTEM,SQLTXPLAIN;
- Executar o comando:
- SQL> start sqltxtract.sql <sql_id> <senha do SQLTXPLAIN>
5 - Arquivo final do SQL
Após o SQLT finalizar a execução do script, será gerado um arquivo .zip no diretório (./run), o qual precisamos identificá-lo.
Esse arquivo, pode ser descompactado e visualizado, onde encontraremos diversos pontos de analise que podemos utilizar para ajustar nosso ambiente / SQL analisado.
Esse arquivo .zip poderá ser enviado para a Oracle, em caso de abertura de chamado no My Oracle Support.
6- Mais informações
Outras informações sobre o SQLT podem ser encontradas nos arquivos sqlt_instructions.html e SQLTXPLAIN.pdf que são descompactados do arquivo sqlt.zip
Referências:
All About the SQLT Diagnostic Tool (Doc ID 215187.1)
SQLT Usage Instructions (Doc ID 1614107.1)
How to Determine the SQL_ID for a SQL Statement (Doc ID 1627387.1)