Nenhum resultado encontrado

Sua pesquisa não corresponde a nenhum resultado.

Sugerimos que você tente o seguinte para ajudar a encontrar o que procura:

  • Verifique a ortografia da sua pesquisa por palavra-chave.
  • Use sinônimos para a palavra-chave digitada; por exemplo, tente “aplicativo” em vez de “software.”
  • Tente uma das pesquisas populares mostradas abaixo.
  • Inicie uma nova pesquisa.
Perguntas Frequentes

Instalando e utilizando o SQLT (SQLTXPLAIN) - Parte I

Por Jhonata Jamim,
Publicado en Mayo 2017

Revisado por Marcelo Pivovar

INTRODUÇÃO

O SQLT (sqltxplain) é uma ferramenta de diagnóstico SQL fornecida pela Oracle Technologies Center of Expertise para auxílio na análise de comandos SQL com baixa performance, ou que estejam apresentando resultados errados. O SQLT conecta no banco de dados para coleta dos planos de execução, estatísticas CBO, objetos relacionados, estatísticas atuais, parâmetros de configuração eelementos semelhantes que podem influenciar na performance do SQL que está sendo analisado.

Inicialmente desenvolvido por Carlos Sierra, o SQLT veio sendo constantemente desenvolvido e aprimorado por muitos engenheiros, DBAs, desenvolvedores e outros, que constantemente contribuem para melhorar a ferramenta a cada nova versão.

A última versão disponível do SQLT é a 12.1.160429, lançada em 29 de abril de 2016 e pode ser baixada diretamente do do My Oracle Support, através do DOC 215187.1. A instalação atualmente suporta as versões do Oracle Database 10.2, 11.1, 11.2 e superior, em plataformas UNIX, Linux e Windows. Sua utilização é gratuita e não necessita diretamente de nenhuma feature extra-cost.

Porém vale destacar que, é possível definir em sua instalação e execução a utilização ou não das feature de Diagnostic e Tuning. Desta forma, é preciso atenção afim de evitar que algum licenciamento seja infringido.

Atualmente o SQLT é amplamente utilizado pelo My Oracle Support. Geralmente quando os analistas da Oracle realizam um atendimento de um chamado relacionado a performance SQL, solicitam a execução do SQLT e o envio dos resultados gerados.

Durante a instalação do SQLT, será criada uma role e dois usuários, o SQLTXADMIN e o SQTXPLAIN, onde será armazenado o repositório com as informações sobre as queries analisadas pela ferramenta.

INSTALAÇÃO

A instalação do SQLT ocorre abaixo dos owners SQLXPLAIN e SQLTXADMIN e nenhum objeto é criado a não ser nestes dois usuários.

Vale ressaltar que a instalação deve ser realizada no ambiente onde encontra-se o SQL que será analisado.

O primeiro passo será sempre baixar a última versão disponível no My Oracle Support. O arquivo baixado será um .zip que deve ser enviado ao servidor de descompactado. Após a descompactação, executaremos a instalação no database, que consiste na execução do script sqcreate.sql (sqlt/install/sqcreate.sql) conectado com o usuário SYS.

[oracle@spdlvhml002 oracle]$ ls -ltr sqlt_latest.zip  -rw-r--r-- 1 oracle oinstall 931766 Apr 13 17:52 sqlt_latest.zip  [oracle@spdlvhml002 oracle]$ unzip sqlt_latest.zip  [oracle@spdlvhml002 oracle]$  [oracle@spdlvhml002 oracle]$ cd sqlt/install/  [oracle@spdlvhml002 install]$ sqlplus / as sysdba  SQL> START sqcreate.sql  

Durante a instalação, precisaremos informar alguns parâmetros:

1. String de conexão (obrigatória quando instalado em ambiente 12c com PDB).

Em alguns ambientes com acesso restrito, pode ser necessário especificarmos um identificador de conexão, por exemplo, @PROD. Se não for necessária a utilização de um identificador de conexão, basta “dar um enter”. A instalação sem um identificar de conexão é a forma mais comum utilizada.

Vale destacar novamente, que o uso de um identificador de conexão é obrigatório quando o SQLT é instalado em um Plugglable Database.

2. Senha do usuário SQLTXPLAIN.

Será solicitada asenha para o usuário SQLTXPLAIN, que é criado durante a instalação do SQLT. A senha será ou não case sensitive, de acordo com a configuração do parâmetro sec_case_sensitive_logon do banco onde a instalação está sendo realizada.

3. Tablespace padrão para o SQLTXPLAIN.

Devemos definir uma tablespace que será usada para armazenar o repositório do SQLT. O recomendado seria a criação de uma tablespace específica para a instalação. Porém podemos usar qualquer tablespace que tenha ao menos 500MB livres.

Nesta etapa serão listadas as tablespaces existentes onde também podemos definir para que seja apresentada a área livre de cada uma delas.

4. Tablespace temporária.

Assim como na etapa anterior, nesta etapa serão listadas as tablespaces temporárias para que possamos selecionar a que será utilizada.

5. Usuário de aplicação (Opcional).

Este usuário deve ser o usuário que executou a instrução SQL que será analisada. Não será necessário digitar a senha deste usuário. Posteriormente, se necessário, novos usuários podem ser adicionados através da concessão da ROLE SQLT_USER_ROLE.

6. Licenciamento Oracle Pack (T, D or N).

Aqui informaremos a existência de licenciamento das features Diagnostic e Tuning. Podemos especificar T para tuning, D para Diagnostic ou N para nenhuma delas. Se a opção T ou D for definida, permitirá ao SQLT utilizar destas features. A opção padrão da instalação é T.

Se a opção N for selecionada, o SQLT instalará funcionalidades limitadas para não infringir o licenciamento do ambiente.

Na parte 2 deste artigo, estarei demonstrando a utilização do SQLT.

Abaixo segue um exemplo do processo de instalação do SQLT em um ambiente Oracle Enterprise Edition 11.2.0.4.

  
[oracle@lamim oracle]$ pwd
/oracle
[oracle@lamim oracle]$ ls -ltr sqlt_latest.zip
-rw-r--r-- 1 oracle oinstall 931766 Apr 13 17:52 sqlt_latest.zip
[oracle@lamim oracle]$ unzip sqlt_latest.zip
Archive:  sqlt_latest.zip
   creating: sqlt/
   creating: sqlt/doc/
  inflating: sqlt/doc/sqlt_changes.html
creating: sqlt/input/



inflating: sqlt/utl/xplore/xplore.pks
[oracle@lamim oracle]$ cd sqlt/install/
[oracle@lamim install]$
[oracle@lamim install]$
[oracle@lamim install]$ sqlplus

SQL*Plus: Release 11.2.0.4.0 Production on Fri Apr 14 22:07:14 2017

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Enter user-name: / as sysdba

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning option

SQL> START sqcreate.sql
        zip warning: name not matched: *_sq*.log

zip error: Nothing to do! (SQLT_installation_logs_archive.zip)
        zip warning: name not matched: *_ta*.log

zip error: Nothing to do! (SQLT_installation_logs_archive.zip)
Ignore errors from here until @@@@@ marker as this is to test for NATIVE 
PLSQL Code Type

@@@@ marker . You may ignore prior errors about NATIVE PLSQL Code Type
old   1: ALTER SESSION SET PLSQL_CODE_TYPE = &&plsql_code_type
new   1: ALTER SESSION SET PLSQL_CODE_TYPE = NATIVE

Session altered.

Specify optional Connect Identifier (as per Oracle Net)
Include "@" symbol, ie. @PROD
If not applicable, enter nothing and hit the "Enter" key.
You *MUST* provide a connect identifier when installing
SQLT in a Pluggable Database in 12c
This connect identifier is only used while exporting SQLT
repository everytime you execute one of the main methods.

Optional Connect Identifier (ie: @PROD):

PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

Define SQLTXPLAIN password (hidden and case sensitive).

Password for user SQLTXPLAIN:
Re-enter password:

PL/SQL procedure successfully completed.

The next step is to choose the tablespaces to be used by SQLTXPLAIN

The Tablespace name is case sensitive.

Do you want to see the free space of each tablespace [YES]
or is it ok just to show the list of tablespace [NO]?

Type YES or NO [Default NO]: YES

... please wait

TABLESPACE                     FREE_SPACE_MB
------------------------------ -------------
KILL_SESSION_TBS                        4998
AUDIT_TBS                               8254
TEMPTABS                               19999
USERS                                  19999

4 rows selected.

Specify PERMANENT tablespace to be used by SQLTXPLAIN.

Tablespace name is case sensitive.

Default tablespace [UNKNOWN]: USERS

PL/SQL procedure successfully completed.

... please wait

TABLESPACE
------------------------------
TEMP
TEMP1

Specify TEMPORARY tablespace to be used by SQLTXPLAIN.

Tablespace name is case sensitive.

Temporary tablespace [UNKNOWN]: TEMP

PL/SQL procedure successfully completed.

The main application user of SQLT is the schema
owner that issued the SQL to be analyzed.
For example, on an EBS application you would
enter APPS.
You will not be asked to enter its password.
To add more SQLT users after this installation
is completed simply grant them the SQLT_USER_ROLE
role.

Main application user of SQLT:

PL/SQL procedure successfully completed.

SQLT can make extensive use of licensed features
provided by the Oracle Diagnostic and the Oracle
Tuning Packs, including SQL Tuning Advisor (STA),
SQL Monitoring and Automatic Workload Repository
(AWR).
To enable or disable access to these features
from the SQLT tool enter one of the following
values when asked:

"T" if you have license for Diagnostic and Tuning
"D" if you have license only for Oracle Diagnostic
"N" if you do not have these two licenses

Oracle Pack license [T]: T

PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

TADOBJ completed.

SQDOLD completed. Ignore errors from this script
  adding: 170414220745_01_sqcreate.log (deflated 89%)

SQCUSR completed. Some errors are expected.

Procedure created.

No errors.
  adding: 170414220909_02_sqcusr.log (deflated 85%)

TAUTLTEST completed.
  adding: 170414220913_09_tautltest.log (deflated 60%)

SQUTLTEST completed.
  adding: 170414220913_10_squtltest.log (deflated 61%)

no rows selected

TACOBJ completed.
  adding: 170414220913_03_tacobj.log (deflated 86%)

SQL> PRO Dropping Libraries for TRCA
Dropping Libraries for TRCA
SQL> SET TERM OFF;
tool_repository_schema: "SQLTXPLAIN"
tool_administer_schema: "SQLTXADMIN"
role_name: "SQLT_USER_ROLE"
Creating Procedures
Creating Package Specs TRCA$G
No errors.
Creating Package Specs TRCA$P
No errors.
Creating Package Specs TRCA$T
No errors.
Creating Package Specs TRCA$I
No errors.
Creating Package Specs TRCA$E
No errors.
Creating Package Specs TRCA$R
No errors.
Creating Package Specs TRCA$X
No errors.
Creating Views
Creating Package Body TRCA$G
No errors.
Creating Package Body TRCA$P
No errors.
Creating Package Body TRCA$T
No errors.
Creating Package Body TRCA$I
No errors.
Creating Package Body TRCA$E
No errors.
Creating Package Body TRCA$R
No errors.
Creating Package Body TRCA$X
No errors.
Creating Grants on Libraries

Tool Version
----------------
12.1.160429

Install Date
----------------
20170414

Directories
---------------------------------------------------------------------
TRCA$INPUT1(VALID)      /oracle/diag/rdbms/lamimtst/LAMIMTST/trace
TRCA$INPUT2(VALID)      /oracle/diag/rdbms/lamimtst/LAMIMTST/trace
TRCA$STAGE(VALID)       /oracle/diag/rdbms/lamimtst/LAMIMTST/trace
user_dump_dest
background_dump_dest

Libraries
--------------------------------------------------------------------
VALID PACKAGE TRCA$I /* $Header: 224270.1 tacpkgi.pks 11.4.5.0 2012/
11/21 carlos.sierra $ */

VALID PACKAGE TRCA$E /* $Header: 224270.1 tacpkge.pks 11.4.5.0 2012/
11/21 carlos.sierra $ */

VALID PACKAGE TRCA$G /* $Header: 224270.1 tacpkgg.pks 11.4.5.0 2012/
11/21 carlos.sierra $ */

VALID PACKAGE TRCA$P /* $Header: 224270.1 tacpkgp.pks 11.4.5.0 2012/
11/21 carlos.sierra $ */

VALID PACKAGE TRCA$R /* $Header: 224270.1 tacpkgr.pks 11.4.5.0 2012/
11/21 carlos.sierra $ */

VALID PACKAGE TRCA$T /* $Header: 224270.1 tacpkgt.pks 11.4.5.0 2012/
11/21 carlos.sierra $ */

VALID PACKAGE TRCA$X /* $Header: 224270.1 tacpkgx.pks 11.4.5.0 2012/
11/21 carlos.sierra $ */

VALID PACKAGE BODY TRCA$I /* $Header: 224270.1 tacpkgi.pkb 12.1.14 
2015/12/06 carlos.sierra mauro.pagano abel.macias@oracle.com

$ */

VALID PACKAGE BODY TRCA$E /* $Header: 224270.1 tacpkge.pkb 11.4.5.0 
2012/11/21 carlos.sierra $ */

VALID PACKAGE BODY TRCA$G /* $Header: 224270.1 tacpkgg.pkb 12.1.14 
2015/12/06 carlos.sierra mauro.pagano abel.macias@oracle.com
$ */

VALID PACKAGE BODY TRCA$P /* $Header: 224270.1 tacpkgp.pkb 11.4.5.8 
2013/05/10 carlos.sierra $ */

VALID PACKAGE BODY TRCA$R /* $Header: 224270.1 tacpkgr.pkb 11.4.5.0 
2012/11/21 carlos.sierra $ */

VALID PACKAGE BODY TRCA$T /* $Header: 224270.1 tacpkgt.pkb 12.1.160429 
2016/04/29 carlos.sierra abel.macias@oracle.com$ */

VALID PACKAGE BODY TRCA$X /* $Header: 224270.1 tacpkgx.pkb 11.4.5.0 
2012/11/21 carlos.sierra $ */

TACPKG completed.

PL/SQL procedure successfully completed.

  adding: 170414220923_04_tacpkg.log (deflated 80%)

SQCOBJ completed. Some errors are expected.
  adding: 170414220945_05_sqcobj.log (deflated 93%)

SQLT can make extensive use of licensed features
provided by the Oracle Diagnostic and the Oracle
Tuning Packs, including SQL Tuning Advisor (STA),
SQL Monitoring, Automatic Workload Repository
(AWR) and SQL Tuning Sets (STS).
To enable or disable access to these features
from the SQLT tool enter one of the following
values when asked:

"T" if you have license for Diagnostic and Tuning
"D" if you have license only for Oracle Diagnostic
"N" if you do not have these two licenses

pack_license: "T"
enable_tuning_pack_access

PL/SQL procedure successfully completed.

Specify optional Connect Identifier (as per Oracle Net)
Include "@" symbol, ie. @PROD
If not applicable, enter nothing and hit the "Enter" key

connect_identifier: ""

PL/SQL procedure successfully completed.

Table truncated.

PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

Procedure created.

No errors.

Table truncated.

PL/SQL procedure successfully completed.

Procedure dropped.

Commit complete.

SQSEED completed.
  adding: 170414221121_07_sqseed.log (deflated 80%)

... dropping packages for SQLT
... creating package specs for SQLT$A
SQL> SHOW ERRORS PACKAGE &&tool_administer_schema..sqlt$a;
No errors.
SQL> --
SQL> SET TERM ON ECHO OFF;
... creating package specs for SQLT$C
SQL> SHOW ERRORS PACKAGE &&tool_administer_schema..sqlt$c;
No errors.
SQL> --
SQL> SET TERM ON ECHO OFF;
... creating package specs for SQLT$D
SQL> SHOW ERRORS PACKAGE &&tool_administer_schema..sqlt$d;
No errors.
SQL> --
SQL> SET TERM ON ECHO OFF;
... creating package specs for SQLT$E
SQL> SHOW ERRORS PACKAGE &&tool_administer_schema..sqlt$e;
No errors.
SQL> --
SQL> SET TERM ON ECHO OFF;
... creating package specs for SQLT$H
SQL> SHOW ERRORS PACKAGE &&tool_administer_schema..sqlt$h;
No errors.
SQL> --
SQL> SET TERM ON ECHO OFF;
... creating package specs for SQLT$I
SQL> SHOW ERRORS PACKAGE &&tool_administer_schema..sqlt$i;
No errors.
SQL> --
SQL> SET TERM ON ECHO OFF;
... creating package specs for SQLT$M
SQL> SHOW ERRORS PACKAGE &&tool_administer_schema..sqlt$m;
No errors.
SQL> --
SQL> SET TERM ON ECHO OFF;
... creating package specs for SQLT$R
SQL> SHOW ERRORS PACKAGE &&tool_administer_schema..sqlt$r;
No errors.
SQL> --
SQL> SET TERM ON ECHO OFF;
... creating package specs for SQLT$S
SQL> SHOW ERRORS PACKAGE &&tool_administer_schema..sqlt$s;
No errors.
SQL> --
SQL> SET TERM ON ECHO OFF;
... creating package specs for SQLT$T
SQL> SHOW ERRORS PACKAGE &&tool_administer_schema..sqlt$t;
No errors.
SQL> --
SQL> SET TERM ON ECHO OFF;
... creating views
... creating package body for SQLT$A
SQL> SHOW ERRORS PACKAGE BODY &&tool_administer_schema..sqlt$a;
No errors.
SQL> --
SQL> SET TERM ON ECHO OFF;
... creating package body for SQLT$C
SQL> SHOW ERRORS PACKAGE BODY &&tool_administer_schema..sqlt$c;
No errors.
SQL> --
SQL> SET TERM ON ECHO OFF;
... creating package body for SQLT$D
SQL> SHOW ERRORS PACKAGE BODY &&tool_administer_schema..sqlt$d;
No errors.
SQL> --
SQL> SET TERM ON ECHO OFF;
... creating package body for SQLT$E
SQL> SHOW ERRORS PACKAGE BODY &&tool_administer_schema..sqlt$e;
No errors.
SQL> --
SQL> SET TERM ON ECHO OFF;
... creating package body for SQLT$H
SQL> SHOW ERRORS PACKAGE BODY &&tool_administer_schema..sqlt$h;
No errors.
SQL> --
SQL> SET TERM ON ECHO OFF;
... creating package body for SQLT$I
SQL> SHOW ERRORS PACKAGE BODY &&tool_administer_schema..sqlt$i;
No errors.
SQL> --
SQL> SET TERM ON ECHO OFF;
... creating package body for SQLT$M
SQL> SHOW ERRORS PACKAGE BODY &&tool_administer_schema..sqlt$m;
No errors.
SQL> --
SQL> SET TERM ON ECHO OFF;
... creating package body for SQLT$R
SQL> SHOW ERRORS PACKAGE BODY &&tool_administer_schema..sqlt$r;
No errors.
SQL> --
SQL> SET TERM ON ECHO OFF;
... creating package body for SQLT$S
SQL> SHOW ERRORS PACKAGE BODY &&tool_administer_schema..sqlt$s;
No errors.
SQL> --
SQL> SET TERM ON ECHO OFF;
... creating package body for SQLT$T
SQL> SHOW ERRORS PACKAGE BODY &&tool_administer_schema..sqlt$t;
No errors.
SQL> --
SQL> SET TERM ON ECHO OFF;

Creating Grants on Packages ...

LIBRARIES
----------------------------------------------------------------
VALID   PACKAGE      12.1.160429   SQLT$A
VALID   PACKAGE      12.1.10       SQLT$C
VALID   PACKAGE      12.1.11       SQLT$D
VALID   PACKAGE      12.1.10       SQLT$E
VALID   PACKAGE      12.1.10       SQLT$H
VALID   PACKAGE      12.1.10       SQLT$I
VALID   PACKAGE      12.1.10       SQLT$M
VALID   PACKAGE      12.1.160429   SQLT$R
VALID   PACKAGE      12.1.10       SQLT$S
VALID   PACKAGE      12.1.10       SQLT$T
VALID   PACKAGE      11.4.5.0      TRCA$E
VALID   PACKAGE      11.4.5.0      TRCA$G
VALID   PACKAGE      11.4.5.0      TRCA$I
VALID   PACKAGE      11.4.5.0      TRCA$P
VALID   PACKAGE      11.4.5.0      TRCA$R
VALID   PACKAGE      11.4.5.0      TRCA$T
VALID   PACKAGE      11.4.5.0      TRCA$X
VALID   PACKAGE BODY 12.1.160429   SQLT$A
VALID   PACKAGE BODY 12.1.14       SQLT$C
VALID   PACKAGE BODY 12.1.160429   SQLT$D
VALID   PACKAGE BODY 12.1.160429   SQLT$E

LIBRARIES
----------------------------------------------------------------
VALID   PACKAGE BODY 12.1.160429   SQLT$H
VALID   PACKAGE BODY 12.1.160429   SQLT$I
VALID   PACKAGE BODY 12.1.14       SQLT$M
VALID   PACKAGE BODY 12.1.160429   SQLT$R
VALID   PACKAGE BODY 12.1.10       SQLT$S
VALID   PACKAGE BODY 12.1.14       SQLT$T
VALID   PACKAGE BODY 11.4.5.0      TRCA$E
VALID   PACKAGE BODY 12.1.14       TRCA$G
VALID   PACKAGE BODY 12.1.14       TRCA$I
VALID   PACKAGE BODY 11.4.5.8      TRCA$P
VALID   PACKAGE BODY 11.4.5.0      TRCA$R
VALID   PACKAGE BODY 12.1.160429   TRCA$T
VALID   PACKAGE BODY 11.4.5.0      TRCA$X

Deleting CBO statistics for SQLTXPLAIN objects ...

22:12:19    0 sqlt$a: -> delete_sqltxplain_stats
22:12:23    4 sqlt$a: <- delete_sqltxplain_stats

PL/SQL procedure successfully completed.

SQCPKG completed.
  adding: 170414221122_08_sqcpkg.log (deflated 79%)

TAUTLTEST completed.
  adding: 170414221223_09_tautltest.log (deflated 59%)

SQUTLTEST completed.
  adding: 170414221223_10_squtltest.log (deflated 59%)

SQLT users must be granted SQLT_USER_ROLE before using this tool.

SQCREATE completed. Installation completed successfully.
SQL>
SQL>
 
 

Jhonata Euclides Lamim, MBA em Gestão de Banco de Dados Oracle pelo Centro Universitário de Araraquara (UNIARA), Bacharel em Sistemas de Informação pelo Centro Universitário de Brusque (UNIFEBE). Atua como DBA Oracle desde 2010, pela Teiko Soluções em Tecnologia da Informação. É um entusiasta da tecnologia Oracle e autor do blog lamimdba.com.br.

Este artigo foi revisto pela equipe de produtos Oracle e está em conformidade com as normas e práticas para o uso de produtos Oracle.