Re: [oracle_br] Re: RES: [GPOracle] query de repente ficou muuuuuuuuuuuuuito demorada

2010-06-07 Por tôpico Márcio Ricardo Alves da Silva
Duilio, as tabelas com pequenas faço as coletas todos os dias. As tabelas 
que tenho milhões de registros, faço um dia sim e outro não.

Fiz o procedimento de shrink em algumas tabelas e índices, sugeridos pelo 
EM, e após isso coletei as estatísticas do schema todo.

Márcio.
- Original Message - 
From: Duilio Bruniera Junior bruni...@gmail.com
To: oracle_br@yahoogrupos.com.br
Sent: Sunday, June 06, 2010 3:35 AM
Subject: Re: [oracle_br] Re: RES: [GPOracle] query de repente ficou 
muito demorada


pessoal, sem querer parecer imbecil uma vês alguém comentou um script de
coleta de statistica da crontab depois de 4 dias algumas querys de
instantâneas passaram há 3 horas. Marcio voce ja olhou quando foi a ultima
vês que você fez uma coleta de estatisca na sua base/schema ?

Em 4 de junho de 2010 09:06, daniloh2000 daniloh2...@yahoo.com.brescreveu:



 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 oracle_br%40yahoogrupos.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 oracle_br%40yahoogrupos.com.br
  Sent: Wednesday, June 02, 2010 4:15 PM
  Subject: [oracle_br] Re: RES: [GPOracle] query de repente ficou
 muito 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:0P11_QUESTION_ID:6793026818923mostra
  
 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.phptem
  
 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

Re: [oracle_br] Re: RES: [GPOracle] query de repente ficou muuuuuuuuuuuuuito demorada

2010-06-07 Por tôpico Duilio Bruniera Junior
brother voce roda como 
vou mandar um ai pra voce de como eu faço pra ver se ajuda, esse query gera
o comando para todas as tables.
---
SELECT 'exec dbms_stats.gather_table_stats(ownname=' || CHR(39) || ds.owner
||
   CHR(39) || ',tabname=' || CHR(39) || ds.segment_name || CHR(39) ||
   ',estimate_percent = 100' || ',cascade = TRUE' ||
   ',degree= 8' ||',granularity= ' || CHR(39) || 'AUTO' || CHR(39) ||
',method_opt=' || CHR(39) ||
   ' FOR ALL COLUMNS SIZE 1' || CHR(39) || ' );' analyze
  from dba_segments ds
 where ds.owner in
('SCHEMA1','SCHEMA2','SCHEMA3','SCHEMA4','SCHEMA5','SCHEMA6','SCHEMA7')
   and ds.segment_type = ('TABLE')
   order by ds.bytes desc;
---


Em 7 de junho de 2010 08:07, Márcio Ricardo Alves da Silva 
marcio_...@yahoo.com.br escreveu:



 Duilio, as tabelas com pequenas faço as coletas todos os dias. As tabelas
 que tenho milhões de registros, faço um dia sim e outro não.

 Fiz o procedimento de shrink em algumas tabelas e índices, sugeridos pelo
 EM, e após isso coletei as estatísticas do schema todo.

 Márcio.

 - Original Message -
 From: Duilio Bruniera Junior bruni...@gmail.com bruniera%40gmail.com
 To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Sent: Sunday, June 06, 2010 3:35 AM
 Subject: Re: [oracle_br] Re: RES: [GPOracle] query de repente ficou
 muito demorada

 pessoal, sem querer parecer imbecil uma vês alguém comentou um script de
 coleta de statistica da crontab depois de 4 dias algumas querys de
 instantâneas passaram há 3 horas. Marcio voce ja olhou quando foi a ultima
 vês que você fez uma coleta de estatisca na sua base/schema ?

 Em 4 de junho de 2010 09:06, daniloh2000 
 daniloh2...@yahoo.com.brdaniloh2000%40yahoo.com.br
 escreveu:

 
 
  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 
  oracle_br%40yahoogrupos.com.broracle_br%
 40yahoogrupos.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 
   oracle_br%40yahoogrupos.com.broracle_br%
 40yahoogrupos.com.br
   Sent: Wednesday, June 02, 2010 4:15 PM
   Subject: [oracle_br] Re: RES: [GPOracle] query de repente ficou
  muito 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:0P11_QUESTION_ID:6793026818923mostra
  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

Re: [oracle_br] Re: RES: [GPOracle] query de repente ficou muuuuuuuuuuuuuito demorada

2010-06-06 Por tôpico Duilio Bruniera Junior
pessoal, sem querer parecer imbecil uma vês alguém comentou um script de
coleta de statistica da crontab depois de 4 dias algumas querys de
instantâneas passaram há 3 horas. Marcio voce ja olhou quando foi a ultima
vês que você fez uma coleta de estatisca na sua base/schema ?

Em 4 de junho de 2010 09:06, daniloh2000 daniloh2...@yahoo.com.brescreveu:



 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 oracle_br%40yahoogrupos.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 oracle_br%40yahoogrupos.com.br
  Sent: Wednesday, June 02, 2010 4:15 PM
  Subject: [oracle_br] Re: RES: [GPOracle] query de repente ficou
 muito 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:0P11_QUESTION_ID:6793026818923mostra
  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.phptem
  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 oracle_br%40yahoogrupos.com.br,
 Márcio Ricardo Alves da Silva marcio_cbj@ 

Re: [oracle_br] Re: RES: [GPOracle] query de repente ficou muuuuuuuuuuuuuito demorada

2010-06-02 Por tôpico Márcio Ricardo Alves da Silva
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 
muito 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:0P11_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_...@... 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=