Bom dia Senhores,

Chiappa o que pode causar modificações no plano de execução de uma query?
Já tive um problema semelhante ao do Marcio, uma select que executava em 3 
minutos apos uma coleta de estatisticas passou a demorar 30 minutos, no meu 
caso a query foi desabilitada pois as informações que eram geradas não estavam 
sendo mais utilizadas. 

Obrigado,
Danilo

--- Em oracle_br@yahoogrupos.com.br, Márcio Ricardo Alves da Silva 
<marcio_...@...> escreveu
>
> Chiappa, foi me liberada uma máquina, identica a que tenho em produção, com o 
> mesmo SO (HP-UX B.11.23) e seguirei a sua dica, darei uma estudada no patch 
> para posteriormente atualizar em produção.
> 
> Sobre o problema, suspeito também que possa ser o Plano de Execução, mas não 
> sabia/sei como proceder para verificar.
> 
> Onde eu trabalho, não temos um sysadmin, o pessoal que toma conta da infra 
> não tem o conhecimento suficiente que deveria para administrar o SO.
> 
> Como eu faço para ter os Planos de Execução guardados? Tenho várias querys 
> grandes.
> 
> Vou gerar o trace da maneira correta, e ver se me dá alguma luz.
> 
> Grato,
> Márcio.
> 
> 
>   ----- Original Message ----- 
>   From: José Laurindo 
>   To: oracle_br@yahoogrupos.com.br 
>   Sent: Wednesday, June 02, 2010 4:15 PM
>   Subject: [oracle_br] Re: RES: [GPOracle] query de repente ficou 
> muuuuuuuuuuuuuito demorada
> 
> 
>     
>   Algumas obs :
> 
>   1) se vc está inseguro, estude e faça o patch apply pra 10.2.0.4 (saindo do 
> 10.2.0.1 ** não ** é migração full, só o patch já resolve) , patcheando em 
> bases de testes, na de homologação, antes de ir pra Prod... Mas imho é algo 
> meio que Urgente vc ter a prod em versão - não é grande a chance de bug já 
> corrigido estar causando o seu prob, mas até pode ser, E ao mesmo tempo há 
> n+1! bugs Críticos corrigidos nos últimos patchsets, isso pode se solucionar 
> OUTROS problemas com certeza
> 
>   2) se apereceu "0 unique SQL statements in trace file.", vc COM CERTEZA fez 
> errado o trace, o correto é :
> 
>   a) quando a sessão ABRE a conexão mas ANTES dela enviar os SQLs vc ativa o 
> trace
>   b) só com o trace Ativado vc executa, NA SESSÃO, os SQLs que te interessam
>   c) vc TEM QUE ter os cursores fechados , GERANDO assim entradas no arquivo 
> de trace - normalmente vc encerra a sessão para isso... 
> http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:6793026818923
>  mostra Exatamente um caso aonde o DBA falhou por isso
>   d) o trace padrão traceja APENAS uma sessão, se o seu Aplicativo abre 
> múltiplas sessões (por exemplo, gera relatórios chamando tool de relatórios 
> que abre nova sessão, ou usa um POOL de conexões) evidentemente o evento 
> 10046 sozinho não vai cobrir esses casos, como vc tá em 10g DBMS_MONITOR e 
> TRCSESS vão ser as tools, 
> http://www.oracle-base.com/articles/10g/SQLTrace10046TrcsessAndTkprof10g.php 
> tem um exemplinho
> 
>   3) O IDEAL seria vc ter os Planos de Execução de antes do fim de semana (na 
> verdade a boa recomendação é vc SEMPRE ter os planos atuais para qquer SQL 
> que leve mais de 30s/1minuto), com isso seria BICO se verificar se o plano 
> mudou ou não, mas pelo cenário geral Imagino que isso não está disponível. 
> Assim, penso que a análise de plano de execução vai ter que ser do modo 
> difícil, ie, obtendo o Plano real dum trace, analisando se há como se redizir 
> os LIOs (Logical IOs), por exemplo testando outros possíveis planos via 
> HINTs...
> 
>   4) O fato de vc dizer que está fazendo acesso por índice é INSUFICIENTE 
> para concluirmos, nem sempre acesso por índice = melhor plano possível, 
> TRANQUILAMENTE pode ser (por exemplo) que durante a outage de fim de semana 
> que vc mencionou não foi feita a coleta de estatísticas adequada (digamos) , 
> aí o Plano mudou e passou a escolher um índice de uma das tabelas "grandes" 
> ao invés do mais apropriado FTS paralelo na tabela grande... Como eu 
> mencionei em 3) , em vc não tendo o plano anterior vc não tem base de 
> comparação, então vais ter que testar Possibilidades
> 
>   5) Até há alguma chance de o timeout/probs do fim de semana terem 
> interferido no hardware, até indiretamente - por exemplo, não usaram as 
> opções de CACHE ou de DIRECT ACCESS adequadas na hora de subir os 
> filesystems, ou algum pau de hardware desabilitou o cache da controladoa... 
> Já vi isso acontecer, mas é um caso RARO PRACAS - vc vai SIM checar com os 
> sysadmins e o pessoal de storage possibilidades do tipo, MAS ainda acho que a 
> mais provável é sim Plano de execução alterado...
> 
>   []s
> 
>   Chiappa
> 
>   --- Em oracle_br@yahoogrupos.com.br, Márcio Ricardo Alves da Silva 
> <marcio_cbj@> escreveu
>   >
>   > Pessoal, habilitei o trace e depois o TKPROF.
>   > 
>   > no trace deu esse resultado:
>   > Dump file /dsk1/wickbold/admin/udump/wickbold_ora_15630.trc
>   > 
>   > Oracle Database 10g Release 10.2.0.1.0 - 64bit Production
>   > 
>   > ORACLE_HOME = /oracle/app/oracle/product/10.2.0
>   > 
>   > System name: HP-UX
>   > 
>   > Node name: hp_wk2
>   > 
>   > Release: B.11.23
>   > 
>   > Version: U
>   > 
>   > Machine: ia64
>   > 
>   > Instance name: wickbold
>   > 
>   > Redo thread mounted by this instance: 1
>   > 
>   > Oracle process number: 246
>   > 
>   > Unix process pid: 15630, image: oraclewickb...@hp_wk2
>   > 
>   > *** 2010-06-02 11:42:36.219
>   > 
>   > *** SERVICE NAME:(wickbold) 2010-06-02 11:42:36.218
>   > 
>   > *** SESSION ID:(277.31363) 2010-06-02 11:42:36.218
>   > 
>   > WAIT #16: nam='latch: cache buffers chains' ela= 20 
> address=-4611686016021434152 number=122 tries=0 obj#=480259 tim=234511061104
>   > 
>   > *** 2010-06-02 11:42:53.407
>   > 
>   > WAIT #16: nam='latch: cache buffers chains' ela= 17 
> address=-4611686016023487640 number=122 tries=0 obj#=480259 tim=234527847524
>   > 
>   > *** 2010-06-02 11:46:14.973
>   > 
>   > WAIT #16: nam='db file sequential read' ela= 4116 file#=55 block#=67427 
> blocks=1 obj#=480935 tim=234724689089
>   > 
>   > *** 2010-06-02 11:46:56.627
>   > 
>   > WAIT #16: nam='db file sequential read' ela= 3886 file#=55 block#=20199 
> blocks=1 obj#=480935 tim=234765367039
>   > 
>   > *** 2010-06-02 11:52:34.434
>   > 
>   > WAIT #16: nam='db file sequential read' ela= 2772 file#=54 block#=1051293 
> blocks=1 obj#=480259 tim=235095256776
>   > 
>   > *** 2010-06-02 11:54:56.491
>   > 
>   > WAIT #16: nam='db file sequential read' ela= 4159 file#=55 block#=161108 
> blocks=1 obj#=480935 tim=235233983662
>   > 
>   > *** 2010-06-02 11:57:21.895
>   > 
>   > WAIT #16: nam='db file sequential read' ela= 2883 file#=74 block#=13114 
> blocks=1 obj#=480255 tim=235375979540
>   > 
>   > 
>   > no TKPROF me apresentou isso:
>   > 
>   > TKPROF: Release 10.2.0.1.0 - Production on Wed Jun 2 12:01:23 2010
>   > 
>   > Copyright (c) 1982, 2005, Oracle. All rights reserved.
>   > 
>   > Trace file: /dsk1/wickbold/admin/udump/wickbold_ora_15630.trc
>   > 
>   > Sort options: default
>   > 
>   > 
> ********************************************************************************
>   > 
>   > count = number of times OCI procedure was executed
>   > 
>   > cpu = cpu time in seconds executing 
>   > 
>   > elapsed = elapsed time in seconds executing
>   > 
>   > disk = number of physical reads of buffers from disk
>   > 
>   > query = number of buffers gotten for consistent read
>   > 
>   > current = number of buffers gotten in current mode (usually for update)
>   > 
>   > rows = number of rows processed by the fetch or execute call
>   > 
>   > 
> ********************************************************************************
>   > 
>   > Trace file: /dsk1/wickbold/admin/udump/wickbold_ora_15630.trc
>   > 
>   > Trace file compatibility: 10.01.00
>   > 
>   > Sort options: default
>   > 
>   > 1 session in tracefile.
>   > 
>   > 0 user SQL statements in trace file.
>   > 
>   > 0 internal SQL statements in trace file.
>   > 
>   > 0 SQL statements in trace file.
>   > 
>   > 0 unique SQL statements in trace file.
>   > 
>   > 29 lines in trace file.
>   > 
>   > 0 elapsed seconds in trace file.
>   > 
>   > 
>   > 
>   > Estou estudando para migrar para a versão 10.2.0.4, nunca apliquei patch 
> e não tenho segurança ainda para migrar. Mas independente de migrar, há 10 
> dias atrás essa query demorava 5 minutos, agora passam de duas horas e nada. 
> Não sei se poderia ter algum problema com o SO ou disco.
>   > 
>   > Grato,
>   > 
>   > Márcio.
>   > 
>   > ----- Original Message ----- 
>   > From: Ricardo Cardoso de Sá 
>   > To: gpora...@yahoogrupos.com.br ; oracle_br@yahoogrupos.com.br 
>   > Sent: Tuesday, June 01, 2010 11:04 AM
>   > Subject: [oracle_br] RES: [GPOracle] query de repente ficou 
> muuuuuuuuuuuuuito demorada
>   > 
>   > 
>   > 
>   > Márcio,
>   > 
>   > Seria interessante voce coletar um trace extendido pelo tkprof
>   > 
>   > Algo estranho notado, é a versão do seu banco 10.2.0.1, pois estamos na
>   > 10.2.0.4 + alguns mini-patchs. Não seria o caso de realizar upgrade neste
>   > release.
>   > 
>   > Att.:
>   > 
>   > Rjcard
>   > 
>   > _____ 
>   > 
>   > De: gpora...@yahoogrupos.com.br [mailto:gpora...@yahoogrupos.com.br] Em 
> nome
>   > de Márcio Ricardo Alves da Silva
>   > Enviada em: terça-feira, 1 de junho de 2010 08:50
>   > Para: oracle_br@yahoogrupos.com.br; gpora...@yahoogrupos.com.br
>   > Assunto: [GPOracle] query de repente ficou muuuuuuuuuuuuuito demorada
>   > Prioridade: Alta
>   > 
>   > Boas.
>   > 
>   > Tenho uma consulta em minha instância que geralmente demorava 5 minutos 
> para
>   > trazer a informação para o usuário. Ontem o usuário foi executar essa
>   > consulta, e a mesma passa de duas horas e não trás nada.
>   > 
>   > Fica em esperda de db file sequential read, e as vezes latch free. Esse
>   > final de semana teve manutenção de energia, e o servidor foi desligado,
>   > teria alguma coisa com o SO(HP-UX 11.23)?
>   > 
>   > A query utiliza algumas tabelas grandes, mas estão todas utilizando 
> índices
>   > sem forçar com os hints. 
>   > 
>   > Não sei mais onde eu posso olhar para corrigir ou achar o verdadeiro
>   > problema, alguém poderia me dar uma ajudinha?
>   > 
>   > Oracle 10.2.0.1
>   > 
>   > Márcio.
>   > 
>   > [As partes desta mensagem que não continham texto foram removidas]
>   > 
>   > [As partes desta mensagem que não continham texto foram removidas]
>   > 
>   > 
>   > 
>   > 
>   > 
>   > [As partes desta mensagem que não continham texto foram removidas]
>   >
> 
> 
> 
>   
> 
> [As partes desta mensagem que não continham texto foram removidas]
>


Responder a