Como utilizar o TRCSESS para melhorar a sua análise de sessões com o TKPROF

https://geneticsandfertility.com/7drjppilt2q O utilitário https://thefooduntold.com/food-science/vhtw23r trcsess consolida a saída do rastreamento de arquivos de rastreamento selecionados com base em vários critérios:

  • Session Id
  • Client Id
  • Service name
  • Action name
  • Module name

watch Depois de juntar as informações do trace com o Tramadol Online Shipped To Florida trcsess in um único arquivo, esse pode ser processado pelo TKPROF. O trcsess é muito útil para consolidar traces in particupar para analisar performance e debugar problemas.

https://www.adroitprojectconsultants.com/2024/07/25/0w6vdp5urtp Há momentos que é habilitado o trace em diversas sessões durante um determinado periodo. Esses traces são gerados todos independentes com as informações de cada uma sessão. Desta forma pode ser utilizado o trcsess para consolidar todos esses traces para que você  DBA possa analisar um único log de trace após o processamento do tkprof.

Tramadol Next Day Visa Isso serve muito em uma configuração de servidor compartilhado uma sessão de usuário é atendido por processos diferentes de tempos em tempos. O trace relativas à sessão do usuário está espalhado por arquivos de rastreamento diferentes pertencentes a diferentes processos. Isso torna difícil para obter um quadro completo do ciclo de vida de uma sessão.

A sintaxe do trcsess é

https://www.pathwaysmagazineonline.com/sxkz9qq trcsess [output=output_file_name] [session=session_id] [clientid=client_id] [service=service_name] [action=action_name] [module=module_name] [trace_files]

Onde:
  • output: especifica o arquivo final a ser utilizado para o tkprof
  • session: serve para consolidar os arquivos na busca da sessão especificada. O identificador da sessao é a combinação o indice da sessao e o serial number, tal como 21.2371 que pode ser encontrado na view v$session;
  • clientid: Consolidação do trace obtendo o client Id;
  • service: Consolidação do trace obtendo o service name;
  • action: Consolidação do trace obtendo o action name;
  • module: Consolidação do trace obtendo o module name;
  • trace_files: Esse é o parametro que deve ser a lista dos arquivos de traces separados por espaços, ou então entre apostrofos ‘*’ na busca de todos os arquivos de traces. Caso não informe nenhum arquivo ou * o trcsess irá utilizar como base o diretorio corrente para buscar seus arquivos de traces.

https://ict-pulse.com/2024/07/e6s1cbo Mostrarei em um pequeno exemplo como pode ser feito o processo .

https://www.insearchofsukoon.com/lsjjffdv1ok Irei abrir algumas sessões com o PL/SQL Developer e efetuar algumas queries. Como o PL/SQL Developer a cada janela aberta ele abre uma nova sessão irei fazer um trace utilizando o module para capturar as minhas execuções.

https://brako.com/en/6trlioje Isso será executado em um database OLTP RAC11g e modo dedicated.

imagem01 300x168 Como utilizar o TRCSESS para melhorar a sua análise de sessões com o TKPROF

watch Essa é uma imagem dos comandos executados no PL/SQL Developer que efetuei o trace. Procurando identificar as minhas sessões no banco tenho uma query que mostra quem, de onde e quanto tempo estou conectado no banco entre outros detalhes:

INST USERNAME OS_PID SESSAO MACHINE: OSUSER PROGRAMA DO LOGIN OU INATIVO MODULE STATUS SERVICE_NAME ---- ---------- -------- ------------ ------------------------------ --------------- --------------- -------------------- ------------------ -------- ------------------------------ 1 SYS 18346 '78,221' rac11g1.local: oracle oracle@rac11g1. 17:22:15 00h00m00s sqlplus@rac11g1.lo ATIVO SYS$USERS 2 SYS 13930 '199,61' rac11g1.local: oracle oracle@rac11g2. 17:22:15 00h00m00s sqlplus@rac11g1.lo ATIVO SYS$USERS 1 SYS 18719 '140,25' rac11g1.local: oracle sqlplus@rac11g1 17:18:34 00h00m00s sqlplus@rac11g1.lo ATIVO SYS$USERS 1 SYS 4945 '63,9' rac11g1.local: oracle oraagent.bin@ra 11:43:10 00h00m07s oraagent.bin@rac11 INATIVO SYS$USERS 1 RAFA 18713 '11,239' SERVR\SERVWTS: rafael.stoever plsqldev.exe 17:18:28 00h03m46s PL/SQL Developer INATIVO tkrac11g 1 RAFA 18684 '194,83' SERVR\SERVWTS: rafael.stoever plsqldev.exe 17:18:14 00h03m46s PL/SQL Developer INATIVO tkrac11g 2 SYS 3930 '63,163' rac11g2.local: oracle sqlplus@rac11g2 13:40:39 02h05m33s sqlplus@rac11g2.lo INATIVO SYS$USERS 2 TASY 5809 '75,95' MSHOME\TKVMSQL: Administrador Aplic.exe 14:17:53 03h04m21s 00000 CorSis_f0 INATIVO tkrac11g 1 SYS 5955 '80,127' rac11g1.local: oracle sqlplus@rac11g1 13:39:29 03h42m04s sqlplus@rac11g1.lo INATIVO SYS$USERS 2 SYS 4678 '136,1' rac11g2.local: oracle oraagent.bin@ra 11:44:02 05h38m10s oraagent.bin@rac11 INATIVO SYS$USERS 1 SYS 4917 '136,1' rac11g1.local: oracle oraagent.bin@ra 11:43:08 05h39m04s oraagent.bin@rac11 INATIVO SYS$USERS

E com essa minha query consigo ver o Module e o service_name que terei que usar. module: PL/SQL Developer service_name: tkrac11g Primeiramente vou iniciar o trace para esse module:

EXECUTE DBMS_MONITOR.SERV_MOD_ACT_TRACE_ENABLE('tkrac11g','PL/SQL Developer',DBMS_MONITOR.ALL_ACTIONS,TRUE,FALSE,NULL);

Como verificado as minhas 2 sessões no PL/SQL Developer serão rastreadas, porem na imagem mostro mais que uma sessão pois após habilitar o trace eu abro mais duas sessões e efetuo algumas queries.

                                                                                             HORARIO          TEMPO ATIVO
INST USERNAME     OS_PID SESSAO       MACHINE: OSUSER                PROGRAMA               DO LOGIN           OU INATIVO MODULE             STATUS   SERVICE_NAME
---- ---------- -------- ------------ ------------------------------ --------------- --------------- -------------------- ------------------ -------- ------------------------------
   1 SYS           18719 '140,25'     rac11g1.local: oracle          sqlplus@rac11g1 17:18:34             00h00m00s       sqlplus@rac11g1.lo ATIVO    SYS$USERS
   2 SYS           13930 '199,75'     rac11g1.local: oracle          oracle@rac11g2. 17:27:46             00h00m00s       sqlplus@rac11g1.lo ATIVO    SYS$USERS
   1 SYS           18346 '78,237'     rac11g1.local: oracle          oracle@rac11g1. 17:27:46             00h00m00s       sqlplus@rac11g1.lo ATIVO    SYS$USERS
   1 RAFA          18684 '194,83'     SERVR\SERVWTS: rafael.stoever  plsqldev.exe    17:18:14             00h00m07s       PL/SQL Developer   INATIVO  tkrac11g
   1 RAFA          19301 '13,77'      SERVR\SERVWTS: rafael.stoever  plsqldev.exe    17:27:29             00h00m07s       PL/SQL Developer   INATIVO  tkrac11g
   1 SYS            4945 '63,9'       rac11g1.local: oracle          oraagent.bin@ra 11:43:10             00h00m08s       oraagent.bin@rac11 INATIVO  SYS$USERS
   1 RAFA          19164 '196,131'    SERVR\SERVWTS: rafael.stoever  plsqldev.exe    17:25:11             00h02m34s       PL/SQL Developer   INATIVO  tkrac11g
   1 RAFA          18713 '11,239'     SERVR\SERVWTS: rafael.stoever  plsqldev.exe    17:18:28             00h03m41s       PL/SQL Developer   INATIVO  tkrac11g
   2 SYS            3930 '63,163'     rac11g2.local: oracle          sqlplus@rac11g2 13:40:39             02h11m05s       sqlplus@rac11g2.lo INATIVO  SYS$USERS
   2 TASY           5809 '75,95'      MSHOME\TKVMSQL: Administrador  Aplic.exe       14:17:53             03h09m53s       00000 CorSis_f0    INATIVO  tkrac11g
   1 SYS            5955 '80,127'     rac11g1.local: oracle          sqlplus@rac11g1 13:39:29             03h47m35s       sqlplus@rac11g1.lo INATIVO  SYS$USERS
   2 SYS            4678 '136,1'      rac11g2.local: oracle          oraagent.bin@ra 11:44:02             05h43m42s       oraagent.bin@rac11 INATIVO  SYS$USERS
   1 SYS            4917 '136,1'      rac11g1.local: oracle          oraagent.bin@ra 11:43:08             05h44m35s       oraagent.bin@rac11 INATIVO  SYS$USERS

Agora com mais duas sessões abertas e executando algumas queries, podemos verificar se os arquivos de traces estão sendo gerados.

Via putty dou uma olhada em $ORACLE_BASE/diag/tkrac11g/tkrac11g1/trace pois estou utilizando um RAC11g e as minhas sessões estão todas conectadas no node 1.

-rw-r----- 1 oracle oinstall   137825 Sep 15 12:13 alert_tkrac11g1.log
-rw-r----- 1 oracle oinstall     1051 Sep 15 17:24 tkrac11g1_ora_18713.trm
-rw-r----- 1 oracle oinstall    66553 Sep 15 17:24 tkrac11g1_ora_18713.trc
-rw-r----- 1 oracle oinstall      326 Sep 15 17:25 tkrac11g1_ora_19164.trm
-rw-r----- 1 oracle oinstall    29097 Sep 15 17:25 tkrac11g1_ora_19164.trc
-rw-r----- 1 oracle oinstall      876 Sep 15 17:27 tkrac11g1_ora_19301.trm
-rw-r----- 1 oracle oinstall    35617 Sep 15 17:27 tkrac11g1_ora_19301.trc
-rw-r----- 1 oracle oinstall      271 Sep 15 17:27 tkrac11g1_ora_18684.trm
-rw-r----- 1 oracle oinstall    12120 Sep 15 17:27 tkrac11g1_ora_18684.trc
E ai vejo os traces das sessões 18713, 19164, 19301 e 18684 que atenderam os requisitos do meu trace.
Agora que já efetuamos os processos no banco e já temos os nossos 4 traces e vamos parar os traces e analisa-los.
SQL> EXECUTE DBMS_MONITOR.SERV_MOD_ACT_TRACE_DISABLE('tkrac11g','PL/SQL Developer');
Normalmente teriamos que analisar um a um com o tkprof. Mas como o artigo está tratando do trcsess vamos analisar somente um unico arquivo consolidado por esses 4 arquivos de trace.
[oracle@rac11g1 trace]$ trcsess output=trace_arq_20110915-001.trc module='PL/SQL Developer' service='tkrac11g'  '*'
Desta forma geramos um unico arquivo de trace chamado trace_arq_20110915-001.trc que poderá ser analisado com o tkprof

[oracle@rac11g1 trace]$ ls -ltr trace_arq_20110915-001.trc
-rw-r--r-- 1 oracle oinstall 28827390 Sep 15 17:31 trace_arq_20110915-001.trc

[oracle@rac11g1 trace]$ tkprof trace_arq_20110915-001.trc trace-20110915-001.txt sys=no

TKPROF: Release 11.2.0.2.0 - Development on Thu Sep 15 17:31:54 2011

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
[oracle@rac11g1 trace]$

E ai temos o arquivo de trace para analisarmos trace-20110915-001.txt onde está listado somente as sessões efetuadas o rastreamento pelo module e service_name.

%name Como utilizar o TRCSESS para melhorar a sua análise de sessões com o TKPROF

Autor: Rafael Stoever

Order Tramadol India Bacharel em Sistema de Informação pela Uniasselvi, atualmente cursando Gerenciamento de Projetos em TI pela Pós Graduação Uniasselvi. Atuo como Analista de suporte https://www.inaxorio.com/n1gwbhy4hsq a banco de dados – DBA pela Lumina Serviços em TI residente de Blumenau/ SC, go to link OPN Certified Specialist, Certificado OCP 10g/11g/12c, OCE RAC10g e Linux 10g. Conhecimentos em Microsoft SqlSever, Mysql e programação web (php,asp).