OkDoc, agora tá bem mais claro o que vc quer e o que tem : muito bem, no cenário que vc descreve acho que pra analisar SQLs a ferramenta básica é consultar a V$SQL (abaixo eu vou falar um pouco disso), mas antes de mais nada :
a) quero deixar Claro que , em paralelo a esse trabalho que vc vai fazer, de checagem geral, vc ** TEM ** que fazer o trabalho que, provavelmente, será MUITO muito mais útil pros seus usuários, que é a Análise focada nos mais importantes programas/telas/relatórios do aplicativo ... O fato é, o usuário se lixa pra se o banco de modo geral tá bom ou ruim, o que ele quer é o programa x, o relatório y , a tela z importantes pra ele funcionem bem, e absolutamente não é garantido que analisar SQLs em geral, e saúde do banco e geral, vá alterar o comportamento da query x, da tela y .... Esse tipo de análise envolve primeiro muuuuita conversa com o usuário, pra se entender o que ele faz, o que é mais importante pro negócio, e uma vez isso identificado vc captura os SQLs, os WAITs e acomnpanha a execução desses progs/telas/reports específicos - isso pode ser com TRACE+TKPROF , http://www.oracle-base.com/articles/10g/SQLTrace10046TrcsessAndTkprof10g.php mostra algumas possibilidades, e o manual de Tuning também b) os SQLs / programas / processos ineficientes que vc localizou (seja na análise geral, seja na análise focada) tem claro, que ser corrigidos : como é sistema de terceiros, antes de sair mexendo em qquer coisa que seja vc TEM que acionar o Suporte do fornecedor e pedir permissão c) a melhoria pode implicar em alteração de estruturas físicas, e/ou em re-escrita de SQL, e/ou em uso de determinadas features do banco, não importa : é o fornecedor em princípio que deve atuar, SEMPRE, o sistema Absolutamente Não é Teu, vc ALUGA o direito de uso, certo ? Até pode haver casos aonde o Fornecedor se recusa a mexer, aí sim, DEPOIS de autorizado vc pode fazer por conta... Muito bem, isso dito , a sua resposta : já que vc não tem direito a usar o OEM, vc até pode usar também as tools mais genéricas (como o statspack), mas imho o negócio é vc levantar os SQLs manualmente - claro, sendo OLTP vc tem tipicamente muitos e muitos SQLs diferentes em execução mas eles são relativamente simples, então adote, digamos, 100 como o TOP para os SQLs, e a técnica básica é executar na tua tool cliente de preferência algo tipo : SELECT * FROM (Select colunasdesejadas FROM V$SQL ORDER BY ordenaçãodesejada) WHERE ROWNUM < 101; consulte o manual de Referência, vc vai ver que a V$SQL tem o texto e diversas informações de performance sobre cada SQL (tipo, CPU gasta, qtdade de linhas processadas, tempo de execução gasto, qtdade de I/Os, etc) - a idéia é vc executar algumas vezes a consulta colocando como ordenação ELAPSED_TIME (isso te dpá as queies mais demoradas), algumas vezes ordenando por CPU_TIME, depois algumas por EXECUTIONS (pra saber as mais executadas), assim por diante... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Jose Luis Ramos <jose.ramos.cajuru@...> escreveu > > Chiappa, respondendo ás suas perguntas. > > Em 30 de junho de 2011 19:09, José Laurindo <jlchiappa@...>escreveu: > > > ** > > > > > > Oi, isso DEPENDE exatamente dos detalhes que vc não diz : primeiro, fale um > > pouco sobre o seu ambiente, é OLTP (montes de SQLs curtos mas em grande > > qtdade) ou é DW (poucos SQLs mas cabeludos) ?? > > > é um sistema que podemos definir como OLTP. É um sistema de geração e > emissão de nota fiscais e controle de estoque. > > > Qual SO ? > > > Linux Enterprise Red Hat 5.3 > > > Aplicação de terceiros ou desenvolvida dentro da Empresa mesmo, com > > código-fonte ?? > > > Aplicação de terceiros > > > Qual é a sua Exata versão de database , com 4 dígitos ?? > > > 10.2.0.4 > > > E a Edição, é Enterprise (o fullzão), Standard ou o capadinho do XE ?? > > > Enterprise > > > Instalação default ?? > > > Sim > > > Vc tem instalado (e tem direito de usar) o OEM ?? > > > Não tenho direito de usar > > > Vc quer inicialmente focar nos TOP-n SQLs mais mal-educados (10 ou 20, > > digamos) ?? E finalmente, defina "gasto de Recursos" pra vc : é I/O, CPU, > > qtdade de linhas lidas, qtdade de vezes que o SQL é executado, rede, memória > > , tempo de execução efetivo OU (como normalmente ocorre) vc quer saber de > > tudo isso - digamos, ter uma lista dos SQLs que mais fazem I/O, uma dos SQLs > > que mais consomem RAM, outra dos SQLs que mais fizeram envio pela rede, e > > assim por diante ?? > > > > Creio que o que eu queria é o que voce disse por ultimo, uma visão geral > para identificar o que pode estar ruim > > Obrigado e abs, > > -- > Jose Luis Ramos Jr > Campinas - SP - Brazil > Database Administrator > Fone: +55-21-19-91916882 > > > [As partes desta mensagem que não continham texto foram removidas] >