RECORD uma caracteristica do TKPROF

Este é um pequeno artigo sobre a opção RECORD do TKPROF, que é extremamente útil para capturar e armazenar declarações não recursivos de SQL em ordem de execução do arquivo de trace.

Sintaxe do TKPROF:

Usage: tkprof tracefile outputfile [explain= ] [table= ]
              [print= ] [insert= ] [sys= ] [sort= ]
  table=schema.tablename   Use 'schema.tablename' with 'explain=' option.
  explain=user/password    Connect to ORACLE and issue EXPLAIN PLAN.
  print=integer    List only the first 'integer' SQL statements.
  aggregate=yes|no
  insert=filename  List SQL statements and data inside INSERT statements.
  sys=no           TKPROF does not list SQL statements run as user SYS.
  record=filename  Record non-recursive statements found in the trace file.
  waits=yes|no     Record summary for any wait events found in the trace file.
  sort=option      Set of zero or more of the following sort options:
    prscnt  number of times parse was called
    prscpu  cpu time parsing
    prsela  elapsed time parsing
    prsdsk  number of disk reads during parse
    prsqry  number of buffers for consistent read during parse
    prscu   number of buffers for current read during parse
    prsmis  number of misses in library cache during parse
    execnt  number of execute was called
    execpu  cpu time spent executing
    exeela  elapsed time executing
    exedsk  number of disk reads during execute
    exeqry  number of buffers for consistent read during execute
    execu   number of buffers for current read during execute
    exerow  number of rows processed during execute
    exemis  number of library cache misses during execute
    fchcnt  number of times fetch was called
    fchcpu  cpu time spent fetching
    fchela  elapsed time fetching
    fchdsk  number of disk reads during fetch
    fchqry  number of buffers for consistent read during fetch
    fchcu   number of buffers for current read during fetch
    fchrow  number of rows fetched
    userid  userid of user that parsed the cursor

Continue lendo em oraclehome.com.br


Strace (system call and signals tracer)

Este artigo é dirigido aos administradores de sistema experientes e nos demonstra como desvendar os motivos que causam erros numa aplicação em ambientes linux.

Utilizando a ferramenta strace (system call and signals tracer) é possível interceptar e gravar as ‘system calls’ geradas por um processo e os sinais recebidos pelo mesmo, explicitando seus argumentos e os valores retornados.

Com ela você também pode aprender sobre o funcionamento de programas examinando a fronteira entre o usuário e o kernel através da análise das system calls e signals (altamente avançado).

E claro, nós como DBA’s podemos encontrar a soluções de problemas que são complexos para identicar porem com o strace identificar por exemplo o motivo que o oracleasm SCANDISKS não encontra seus discos é muito simples.

 

Continue lendo em oraclehome.com.br


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

O utilitário 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

Depois de juntar as informações do trace com o 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.

Continue lendo em oraclehome.com.br


Fake/Virtual Index (Indice Virtual)

Após muitas leituras sobre tuning e performance, achei algo interessante e rápido para postar aqui no site e que possa ser muito util para os programadores e administradores de Banco Oracle.
Preciso melhorar a performance do meu SQL, será que esse indice vai me ajudar?

Uma boa pergunta, pois até então criar um indice em uma tabela sempre há um custo.
Porem como irei saber se aquele indice vai ser útil mesmo sem poder testar na prática?
Uma das novas features do 11g é criar indices invisiveis, não interferindo no ambiente(produção como no exemplo), uhuuuu claro estou dizendo em produção nada em ambiente teste, pois nem todo mundo tem essa maravilha que é um ambiente de teste bom e legal p/ testar sua aplicação.
Ai vem o X da questão, nas versões anteriores(8i, 9i e 10g) não tem nada para nos ajudar?
Isso mesmo lendo um bucado achei o FAKE INDEX ou VIRTUAL INDEX.

Ok, agora vou mostrar com um exemplo simples do seu funcionamento.

1. Lembrando que esta prática serve para o Oracle informar, se o indice a ser criado, realmente será usado pelo otimizador e seu custo.
2. Ao ser criado, estara somente no dicionario de dados e não será criado o indice mesmo, não haverá segmentos (NOSEGMENT).
3. Há um parametro não documentado pela oracle, que faz parte do Oracle Enterprise Manager Tuning Wizard para que esta pratica seja bem sucessida.

Ex.:
Tabela teste com 398698 registros Continue lendo →