DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da SQL Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Artigo SQL Magazine 20 - Monitoramento no Oracle 9i - Introdução

Artigo da Revista SQL Magazine - Edição 20.

 

capaSQL20.JPG

 

Clique aqui para ler todos os artigos desta edição

 

Monitoramento no Oracle 9i - Introdução

Rodrigo Salviatto

Uma das principais atividades do administrador de banco de dados é otimizar os processos e comandos SQL executados no banco de dados. Os comandos SQL utilizam recursos de CPU e memória entre outros, impactando na performance do servidor de banco de dados e no tempo de retorno dos dados para a aplicação.

O Oracle 9i possui ferramentas que nos auxiliam a identificar, interpretar e otimizar os comandos SQL executados. Veremos nas próximas páginas como utilizar, em um banco de dados Oracle9i, as ferramentas SQL Trace, TKPROF e o comando explain plan.

Estas ferramentas deverão ser utilizadas quando um database ou uma sessão específica estiver apresentando performance insatisfatória com o intuito de identificar a possível causa do problema. É interessante também utilizá-los para visualizar comandos SQL que estão sendo executados por aplicações desenvolvidas por terceiros.

O que é e para que serve o SQL Trace?

O SQL Trace ajuda a avaliar a eficiência de comandos SQL, pois provê informações de performance importantes. Considerando as seguintes etapas:

·         Parse: etapa onde o comando SQL é traduzido. São feitas checagens de direitos de acesso aos objetos referenciados no SQL e são verificados se a tabela, coluna e demais objetos existem no banco de dados;

·         Execute: etapa onde ocorre a execução do comando SQL pelo Oracle.

·         Fetch counts: Etapa onde as linhas são retornadas para a query na aplicação. Esta etapa é realizada apenas nos comandos select.

 

Ele gera as seguintes estatísticas para cada comando SQL:

·         CPU: tempo total do uso de CPU em segundos para todas as etapas de parse, execute e fetch;

·         DISK: número total de blocos físicos lidos no datafile em todas as etapas de parse, execute e fetch;

·         ROWS: número total de linhas processadas pelo comando SQL;

·         COUNT: tempo total em segundos onde o comando SQL passou pelas etapas de parse, execute e fetch.

 

É possível habilitarmos o SQL Trace para uma determinada sessão ou para uma determinada instância. Quando o SQL Trace está habilitado, as estatísticas de performance são coletadas para todos os comandos da SQL e são arquivados nos arquivos de trace (trace files). Veremos mais adiante como habilitar o SQL Trace (ler Nota 1).

 

Nota 1. SQL Trace

Quando o SQL Trace está habilitado para uma sessão, o Oracle gera um arquivo de trace para cada sessão contendo estatísticas do comando SQL executado nesta sessão. Em contrapartida, quando o SQL Trace está habilitado para uma instância, o Oracle irá gerar um arquivo de trace separado para cada processo executado na instância. Dessa forma, é necessário dimensionar espaço em disco do servidor de banco de dados, pois vários arquivos serão gerados após habilitar o SQL Trace no Oracle 9i.

O que é e para que serve o TKPROF?

O TKPROF é um programa que formata o conteúdo do arquivo de trace em um arquivo legível, que poderá ser melhor interpretado pelo DBA. Com esta ferramenta, é possível determinar o plano de execução dos comandos SQL executados no banco de dados Oracle e também criar um script com todas as estatísticas do database.

O TKPROF não reporta os comandos COMMIT e ROLLBACK em seu relatório. O DBA deverá analisar todas as informações geradas no arquivo de saída, mais especificamente os seguintes itens:

·         Comparar o número de parses e execuções: um sistema bem elaborado deverá ter um parse para “n” execuções, evitando que sejam feitos “n” parses para o mesmo comando;

·         Procurar por comandos SQL que não utilizam variáveis bind: alterar comandos para que utilizem variáveis bind;

·         Identificar full scan em tabelas, alto consumo de CPU e excessiva leitura de disco: localizar estes eventos e analisar os casos de acordo com cada database e/ou sistema.  O que pode ser um alto número de dados lidos do disco em um sistema OLTP não pode ser considerado alto em um sistema de data warehouse. Deve-se estudar caso a caso.

Utilizando o explain plan

Qual caminho de acesso ao banco de dados foi utilizado para executar uma determinada consulta? O explain plan poderá responder esta questão para você. Ele avalia o caminho executado por uma consulta e a coloca em uma tabela chamada PLAN_TABLE (todo esquema que utilizar o explain plan deverá ter esta tabela criada). Utilize o script utlxplan.sql localizado geralmente no diretório RDBMS do servidor de banco de dados para criar este esquema (Unix: /opt/oracle/app/oracle/admin/9.2.0.1.0/rdbms/utlxplan.sql – Windows: c:\oracle\ora92\rdbms\utlxplan.sql).

Vejamos um exemplo na Listagem 1 da criação da tabela PLAN_TABLE no esquema SCOTT em ambiente Windows.

 

SQL> conn scott@orcl

Enter Password: ******

"

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da SQL Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Rodrigo Salviatto
Rodrigo Salviatto é formado em Ciências da Computação pela Universidade de Mogi das Cruzes, pós-graduado em Tecnologia da Informação pela Fundação Getúlio Vargas – FGV. Possui certificado MCDBA e OCP. Atua desde 1997 na área de banco de dados utilizando Oracle, Sqlserver, Informix, MySql entre outro...
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03