RES: [oracle_br] Table size

2008-08-08 Por tôpico Rafael Almeida Milanez
Segue uma opção
 
select segment_name, blocks, bytes
from user_segments
where segment_name = 'RENDA'
and segment_type = 'TABLE';



De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Daniel 
Diniz
Enviada em: quinta-feira, 7 de agosto de 2008 18:09
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Table size



Pessoal,
Fiz essa query abaixo para verificar o tamanho de uma tabela alocada e o
tamanho dos dados, gostaria de saber se estou certo ou não ...

Abraços,

Daniel Diniz

select table_name, (blocks*8192)/1024/1024 Mb ,
(num_rows*avg_row_len)/(1024*1024)
MB from user_tables where table_name='RENDA';

[As partes desta mensagem que não continham texto foram removidas]



 


[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] BULK COLLETION

2008-08-08 Por tôpico elcio francisco
Estou precisando de ajuda, tenho um cursor que estademorando muito, estou 
precisando de melhorar a performance dele, gostaria de saber se alguem ja usou 
o BULK COLLETION em um cursor, e se realmente ele melhora a performance do 
cursor, hoje gasta em medio 5 horas para gerar o relatorio preciso diminuir 
esse tempo .
 
Obrigado
 
 
Elcio Francisco


  Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua 
cara @ymail.com ou @rocketmail.com.
http://br.new.mail.yahoo.com/addresses

[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Lock Table...

2008-08-08 Por tôpico Andre Santos
Xará

Se ocorrer algum problema com essa estratégia do trigger, poste aqui no
grupo (podemos tentar ajudar).

Boa sorte!

[ ]

André Santos


Em 07/08/08, André Alves [EMAIL PROTECTED] escreveu:

   Pois é caro André…

 Infelizmente não temos um ambiente de testes onde possamos reproduzir um
 ambiente semelhante ao da produção devido a complexidade do ambiente.

 Mas obrigado pela ajuda. Acho que a idéia da trigger pode ser uma boa,
 vamos
 tentar isto aqui.

 Obrigado,

 André Alves.

 _

 De: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br [mailto:
 oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br] Em
 nome de Andre Santos
 Enviada em: terça-feira, 5 de agosto de 2008 10:34
 Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Assunto: Re: [oracle_br] Lock Table...

 Xará

 Achei que TP_REGISTRO significasse tipo de registro e faria uma chave
 composta com SQ_REGISTRO.

 Sobre a freqüência de atualização e o problema com lock, é difícil
 responder... o ideal seria fazer testes de carga/stress em uma base de
 testes.
 De qualquer forma, penso que seria interessante ter um tratamento de erro
 no
 trigger, tentando contornar/prevenir um erro de PK...
 Uma maneira seria captar o erro e tentar a inclusão novamente
 (preferencialmente aguardando um tempo aleatório).
 Mas tudo tem um preço: esse tratamento, da forma como imaginei, também pode
 gerar um overhead...

 Conclusão: para ter uma solução segura, não tem como escapar de uma boa
 fase
 de testes! ;^) Verificando essas possibilidades técnicas.

 [ ]

 André

 Em 04/08/08, André Alves andre_tato11@ mailto:
 andre_tato11%40yahoo.com.br andre_tato11%2540yahoo.com.br
 yahoo.com.br escreveu:
 
  Valeu André.
 
  O TP_REGISTRO é a única coluna da chave primária da tabela.
 
  No entanto, em determinados horários do dia a freqüência de atualização
  desta tabela é bastante alta... será que essa sua sugestão resolveria o
  problema do dead lock?
 
  _
 
  De: [EMAIL PROTECTED] 
  mailto:oracle_br%40yahoogrupos.com.broracle_br%2540yahoogrupos.com.br
 os.com.br
 oracle_br%40yahoogrupos.com.br [mailto:
  [EMAIL PROTECTED] 
  mailto:oracle_br%40yahoogrupos.com.broracle_br%2540yahoogrupos.com.br
 os.com.br
 oracle_br%40yahoogrupos.com.br] Em
  nome de Andre Santos
  Enviada em: segunda-feira, 4 de agosto de 2008 09:36
  Para: [EMAIL PROTECTED] 
  mailto:oracle_br%40yahoogrupos.com.broracle_br%2540yahoogrupos.com.br
 
 os.com.br oracle_br%40yahoogrupos.com.br
  Assunto: Re: [oracle_br] Lock Table...
 
  Xará
 
  Se não houver uma concorrência muito alta para inclusão nessa tabela,
 teste
  fazer um trigger assim:
 
  CREATE OR REPLACE tg_inc_sua_tabela
  BEFORE INSERT ON sua_tabela
  FOR EACH ROW
  BEGIN
  SELECT MAX( sq_registro ) + 1
  INTO :NEW.sq_registro
  FROM sua_tabela
  WHERE tp_registro = :NEW.tp_registro;
  END;
  /
 
  Imagino que o índice da chave primária tenha a coluna TP_REGISTRO em
  primeiro lugar (para melhor desempenho).
 
  [ ]
 
  André
 
  Em 02/08/08, André Alves andre_tato11@ mailto:
  andre_tato11%40yahoo.com.br andre_tato11%2540yahoo.com.br
  yahoo.com.br escreveu:
  
   Tenho uma situação semelhante a do Márcio e não posso utilizar
 SEQUENCE,
   pois a chave é composta. A minha tabela de chaves tem duas colunas
  
   TP_REGISTRO VARCHAR2(5) NOT NULL (PK)
  
   SQ_REGISTRO NUMBER(10) NOT NULL
  
   Temos várias rotinas que executam BATCH e que obtém a chave por esta
   tabela.
   Nós estamos utilizando SELECT FOR UPDATE para locar o registro, porém
   aparentemente está dando DEAD LOCK, a sessão fica presa e cai com
  SNAPSHOT
   TOO OLD.
  
   Nossa versão de Oracle é o 9.0.2 em HPUX. Se alguém tiver alguma
 idéia...
  
   _
  
   De: [EMAIL PROTECTED]
 mailto:oracle_br%40yahoogrupos.com.br oracle_br%2540yahoogrupos.com.br
 oracle_br%2540yahoogrupos.com.br
  os.com.br
  oracle_br%40yahoogrupos.com.br [mailto:
   [EMAIL PROTECTED]
 mailto:oracle_br%40yahoogrupos.com.br oracle_br%2540yahoogrupos.com.br
 oracle_br%2540yahoogrupos.com.br
  os.com.br
  oracle_br%40yahoogrupos.com.br] Em
   nome de Diego Leite
   Enviada em: sábado, 2 de agosto de 2008 11:55
   Para: [EMAIL PROTECTED]
 mailto:oracle_br%40yahoogrupos.com.br oracle_br%2540yahoogrupos.com.br
 oracle_br%2540yahoogrupos.com.br
  
  os.com.br oracle_br%40yahoogrupos.com.br
   Assunto: Re: [oracle_br] Lock Table...
  
   Lock Table nao e aconselhavel pela ORACLE. Pq nao criar uma
   sequence?Imagine 2 sistemas(com N usuarios tentando acessar essa
   tabela locada!!
  
   2008/8/1 Márcio Ricardo Alves da Silva [EMAIL PROTECTED]
   mailto:marcio_cbj%40yahoo.com.br marcio_cbj%2540yahoo.com.br
 marcio_cbj%2540yahoo.com.brmarcio_cbj%
  2540yahoo.com.br com.br:
Untitled DocumentBoas.
   
a utlização do comando Lock Table é aconselhável a sua utilização?
  Estou
   com uma situação que o ID de uma tabela é gerado manualmente sem
  sequence
   e hoje dois sistemas utilizam esse ID, e aonteceu de os sistemas
 pegarem
  o
   mesmo ID. 

Res: [oracle_br] BULK COLLETION

2008-08-08 Por tôpico Wilson Teixeira
Aconselho que se utilize o bulk com limit isto melhora bastante a performance



- Mensagem original 
De: elcio francisco [EMAIL PROTECTED]
Para: oracle_br@yahoogrupos.com.br
Enviadas: Sexta-feira, 8 de Agosto de 2008 10:10:07
Assunto: [oracle_br] BULK COLLETION


Estou precisando de ajuda, tenho um cursor que estademorando muito, estou 
precisando de melhorar a performance dele, gostaria de saber se alguem ja usou 
o BULK COLLETION em um cursor, e se realmente ele melhora a performance do 
cursor, hoje gasta em medio 5 horas para gerar o relatorio preciso diminuir 
esse tempo .
 
Obrigado
 
 
Elcio Francisco

Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara 
@ymail.com ou @rocketmail. com.
http://br.new. mail.yahoo. com/addresses

[As partes desta mensagem que não continham texto foram removidas]

 


  Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua 
cara @ymail.com ou @rocketmail.com.
http://br.new.mail.yahoo.com/addresses

[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] BULK COLLETION

2008-08-08 Por tôpico Wendel Muniz de Oliveira
Eu ja tive um caso de um relatorio lento, mudei para bulk collect e melhou
bem a performance ,ao inves de usar o cursor explicito, eu usei o execute
immediate junto com bulk collect, ficou muito bom.

2008/8/8 Wilson Teixeira [EMAIL PROTECTED]

   Aconselho que se utilize o bulk com limit isto melhora bastante a
 performance

 - Mensagem original 
 De: elcio francisco [EMAIL PROTECTED]elcio_francisco%40yahoo.com.br
 
 Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Enviadas: Sexta-feira, 8 de Agosto de 2008 10:10:07
 Assunto: [oracle_br] BULK COLLETION


 Estou precisando de ajuda, tenho um cursor que estademorando muito, estou
 precisando de melhorar a performance dele, gostaria de saber se alguem ja
 usou o BULK COLLETION em um cursor, e se realmente ele melhora a performance
 do cursor, hoje gasta em medio 5 horas para gerar o relatorio preciso
 diminuir esse tempo .

 Obrigado


 Elcio Francisco

 Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua
 cara @ymail.com ou @rocketmail. com.
 http://br.new. mail.yahoo. com/addresses

 [As partes desta mensagem que não continham texto foram removidas]

 Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua
 cara @ymail.com ou @rocketmail.com.
 http://br.new.mail.yahoo.com/addresses

 [As partes desta mensagem que não continham texto foram removidas]

  



[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] Re: Duvida

2008-08-08 Por tôpico adilsontsilva
Expressões Regulares

A seguinte Expressão: 'AP, AM, PA, RR, MA', é um parametro de uma
procedure do tipo varchar2, porém quando esses dados entrarem,
será necessário pesquisar uma tabela usando a clausula WHERE IN
e quebrando a expressão recebida como string.

Exemplo

select *
from estados
where uf in (lista_de_uf);

Como fazer

select *
from estados
where regexp_like(uf,replace(lista_de_uf,', ','|'));

Atenção! Esta função tem comportamento semelhante ao LIKE,
portanto certifique-se que tamanho da coluna UF é igual a tamanho das
strings pesquisadas.





[As partes desta mensagem que não continham texto foram removidas]



RES: [oracle_br] Re: Duvida

2008-08-08 Por tôpico adilsontsilva
b id=konsExpressões Regulares/bbr id=iiq3
br id=iiq30
A seguinte Expressão: 'span id=dmp8 style=font-family: Courier
New; color: rgb(0, 0, 255);AP, AM, PA, RR, MA/span', é um
parametro de uma procedure do tipo varchar2, porém quando esses dados
entrarem, será necessário pesquisar uma tabela usando a clausula
span id=ek7b style=font-family: Courier New; color: rgb(0, 0,
255);WHERE IN/span e quebrando a expressão recebida como string.
br id=qhor
br id=qhor0
div id=iytu style=margin-left: 40px;b id=iytu0Exemplo/bbr
id=sf::
br id=o.cv
span id=dmp80 style=font-family: Courier New; color: rgb(0, 0,
255);select bla, bla, bla/spanbr style=font-family: Courier New;
color: rgb(0, 0, 255); id=o.cv0
span id=dmp81 style=font-family: Courier New; color: rgb(0, 0,
255);from estados/spanbr style=font-family: Courier New; color:
rgb(0, 0, 255); id=o.cv1
span id=dmp82 style=font-family: Courier New; color: rgb(0, 0,
255);where uf in ('AP','AM','PA','RR','MA');/spanbr id=sf::0
br id=sf::1
b id=iytu1Como fazer/bbr id=sf::2
br id=sf::3
span id=clrb style=font-family: Courier New; color: rgb(0, 0,
255);select bla, bla, bla/spanbr style=font-family: Courier New;
color: rgb(0, 0, 255); id=dyh7
span id=clrb0 style=font-family: Courier New; color: rgb(0, 0,
255);
from estados/spanbr style=font-family: Courier New; color: rgb(0, 0,
255); id=dyh70
span id=clrb1 style=font-family: Courier New; color: rgb(0, 0,
255);where regexp_like(uf,replace('AP, AM, PA, RR, MA',',
','|'));/spanbr id=um65
/div
br id=um650
b id=c3_3Atenção!/b Esta função tem comportamento semelhante
ao LIKE, portanto certifique-se que tamanho da coluna UF é igual a
tamanho das strings pesquisadas.br id=sf::4
br id=sf::5
br id=iiq31





[oracle_br] Estranho !! 20.000 cursores abertos ?

2008-08-08 Por tôpico amorrimm
Boa tarde pessoal,

Tenho um problema...na verdade, é uma dúvida...

Fiz uma verificação recente em um banco 10G onde me pediram que 
aumentasse os cursores do mesmo, pois a capacidade havia estourado. 
Pois bem, aumentei os cursores de 300 (padrão) para 1000 e novamente 
estourou.

Fiz uma verificação e descobri que no momento, os cursores estavam em 
20.000 abertos ?? Não vou perguntar se é normal pq acredito que não 
seja...fiz uma verificação no maior consumidor e seria uma aplicação de 
front-end..só ela estaria consumindo 17.870 cursores

Me recordo que no 9i ou no 8i tinha algum bug referente a cursores..não 
é ? Será que estes cursores tem haver somento com a aplicação (pelo que 
entendi sim) ou poderia ser alguma coisa de banco ?



Re: [oracle_br] Explain plan: significado das notas de rodapé

2008-08-08 Por tôpico Rodrigo Mufalani

   Provavelmente vc tem no schema uma plan_table criada de uma versão
anterior a 10.2 o script para criar a plan_table na versão correta
está em:

   $ORACLE_HOME/rdbms/admin/utlxplan.sql

   Dá uma procurada sobre dinamyc sampling... isso é para coletar
estatísticas em tempo de execução.

Atenciosamente,

Rodrigo Mufalani
OCP 10g  11g
[EMAIL PROTECTED]




 Mensagem Original:
 Data: 16:13:02 08/08/2008
 De: Lilian Barroso de Oliveira [EMAIL PROTECTED]
 Assunto: [oracle_br] Explain plan: significado das notas de rodapé

 Olá a todos!


 Estou em um projeto de tuning de aplicação e, ao gerar planos de execução
 das queries, sempre há uma nota de rodaté (note), que na maioria dos casos
 é:
 
 Note
 -
- 'PLAN_TABLE' is old version
 

 Além desta mensagem, apenas uma vez eu vi a seguinte:
 
 Note
 -
- dynamic sampling used for this statement
 

 Alguém saberia explicar o que significam estas mensagens?(Utilizo o Oracle
 10.2 )


 Obrigada,
 Lílian Barroso

 

 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de 
 inteira responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
 --
 Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR TEM 
 SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/
 
  Links do Yahoo! 
 Grupos









Na Oi Internet você ganha ou ganha. Além de acesso grátis com
qualidade, você pode ter contas ilimitadas de email com 1 giga cada uma,
suporte grátis e muito mais. Baixe grátis o Discador Oi em
http://www.oi.com.br/discador e comece a ganhar.

Agora, se o seu negócio é voar alto na internet,
assine Oi Internet Banda Larga e ganhe o modem grátis. Clique em
http://www.oi.com.br/bandalarga e aproveite essa moleza!





Re: [oracle_br] Explain plan: significado das notas de rodapé

2008-08-08 Por tôpico Andre Santos
Lílian

Só complementando o que o Rodrigo explicou, o dynamic sampling ocorre
porque:

- O otimizador está configurado em choose, ou seja, utilizará CBO sempre
que possível.

- Na consulta há tabela(s) com estatística e tabela(s) sem estatística... aí
o otimizador fará uma coleta de amostra automaticamente (e temporária
apenas para a execução) dessa(s) tabela(s) sem estatística, para determinar
o plano de acesso da consulta. E isso não é recomendável.

Verifique as tabelas que estejam sem estatística e faça a coleta para elas.
[ ]

André


Em 08/08/08, Rodrigo Mufalani [EMAIL PROTECTED] escreveu:


 Provavelmente vc tem no schema uma plan_table criada de uma versão
 anterior a 10.2 o script para criar a plan_table na versão correta
 está em:

 $ORACLE_HOME/rdbms/admin/utlxplan.sql

 Dá uma procurada sobre dinamyc sampling... isso é para coletar
 estatísticas em tempo de execução.

 Atenciosamente,

 Rodrigo Mufalani
 OCP 10g  11g
 [EMAIL PROTECTED] mufalani%40oi.com.br

  Mensagem Original:
  Data: 16:13:02 08/08/2008
  De: Lilian Barroso de Oliveira [EMAIL 
  PROTECTED]lilian.oliveira%40teknisa.com
 
  Assunto: [oracle_br] Explain plan: significado das notas de rodapé

  Olá a todos!
 
 
  Estou em um projeto de tuning de aplicação e, ao gerar planos de execução
  das queries, sempre há uma nota de rodaté (note), que na maioria dos
 casos
  é:
  
  Note
  -
  - 'PLAN_TABLE' is old version
  
 
  Além desta mensagem, apenas uma vez eu vi a seguinte:
  
  Note
  -
  - dynamic sampling used for this statement
  
 
  Alguém saberia explicar o que significam estas mensagens?(Utilizo o
 Oracle
  10.2 )
 
 
  Obrigada,
  Lílian Barroso
 
  
 
  --
  Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
  inteira responsabilidade de seus remetentes.
  Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
  --
  Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR TEM
  SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/
  -- Links do
 Yahoo!
  Grupos
 
 
 
 

 --
 Na Oi Internet você ganha ou ganha. Além de acesso grátis com
 qualidade, você pode ter contas ilimitadas de email com 1 giga cada uma,
 suporte grátis e muito mais. Baixe grátis o Discador Oi em
 http://www.oi.com.br/discador e comece a ganhar.

 Agora, se o seu negócio é voar alto na internet,
 assine Oi Internet Banda Larga e ganhe o modem grátis. Clique em
 http://www.oi.com.br/bandalarga e aproveite essa moleza!

 



[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] Re: [oracle _br] Explain plan: significado das notas de rodapé

2008-08-08 Por tôpico Lilian Barroso de Oliveira
Valeu a ambos!

Lílian
 Grande Rodrigo

 Valeu pela observação! Obrigado!

 [ ]

 André


 Em 08/08/08, Rodrigo Mufalani [EMAIL PROTECTED] escreveu:


 André,

 Como tudo no mundo Oracle tem seus dois lados da moeda, há casos que
 o Dynamic sampling é recomendado sim.

 Tabelas que normalmente são muito atualizadas. Você pode deletar as
 estatísticas e fazer lock das estatísticas das mesmas.

 Com isso o oracle pode se beneficiar no uso do dynamic sampling.

 Atenciosamente,

 Rodrigo Mufalani
 OCP 10g  11g
 [EMAIL PROTECTED] mufalani%40oi.com.br

  Mensagem Original:
  Data: 16:58:02 08/08/2008
  De: Andre Santos
 [EMAIL PROTECTED]andre.psantos.ti%40gmail.com
 
  Assunto: Re: [oracle_br] Explain plan: significado das notas de
 rodapé

  Lílian
 
  Só complementando o que o Rodrigo explicou, o dynamic sampling
 ocorre
  porque:
 
  - O otimizador está configurado em choose, ou seja, utilizará CBO
 sempre
  que possível.
 
  - Na consulta há tabela(s) com estatística e tabela(s) sem
 estatística...
 aí
  o otimizador fará uma coleta de amostra automaticamente (e
 temporária
  apenas para a execução) dessa(s) tabela(s) sem estatística, para
 determinar
  o plano de acesso da consulta. E isso não é recomendável.
 
  Verifique as tabelas que estejam sem estatística e faça a coleta para
 elas.
  [ ]
 
  André
 
 
  Em 08/08/08, Rodrigo Mufalani [EMAIL PROTECTED]
 mufalani%40oi.com.br
 escreveu:
 
 
  Provavelmente vc tem no schema uma plan_table criada de uma versão
  anterior a 10.2 o script para criar a plan_table na versão correta
  está em:
 
  $ORACLE_HOME/rdbms/admin/utlxplan.sql
 
  Dá uma procurada sobre dinamyc sampling... isso é para coletar
  estatísticas em tempo de execução.
 
  Atenciosamente,
 
  Rodrigo Mufalani
  OCP 10g  11g
  [EMAIL PROTECTED] mufalani%40oi.com.br mufalani%40oi.com.br
 
   Mensagem Original:
   Data: 16:13:02 08/08/2008
   De: Lilian Barroso de Oliveira
  [EMAIL PROTECTED] lilian.oliveira%40teknisa.com
 lilian.oliveira%40teknisa.com
  
   Assunto: [oracle_br] Explain plan: significado das notas de
 rodapé
 
   Olá a todos!
  
  
   Estou em um projeto de tuning de aplicação e, ao gerar planos de
 execução
   das queries, sempre há uma nota de rodaté (note), que na maioria
 dos
  casos
   é:
   
   Note
   -
   - 'PLAN_TABLE' is old version
   
  
   Além desta mensagem, apenas uma vez eu vi a seguinte:
   
   Note
   -
   - dynamic sampling used for this statement
   
  
   Alguém saberia explicar o que significam estas mensagens?(Utilizo o
  Oracle
   10.2 )
  
  
   Obrigada,
   Lílian Barroso
  
   
  
   --
   Atenção! As mensagens do grupo ORACLE_BR são de acesso público e
 de
   inteira responsabilidade de seus remetentes.
   Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
   --
   Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR TEM
   SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/
   -- Links do
  Yahoo!
   Grupos
  
  
  
  
 
  --
  Na Oi Internet você ganha ou ganha. Além de acesso grátis com
  qualidade, você pode ter contas ilimitadas de email com 1 giga cada
 uma,
  suporte grátis e muito mais. Baixe grátis o Discador Oi em
  http://www.oi.com.br/discador e comece a ganhar.
 
  Agora, se o seu negócio é voar alto na internet,
  assine Oi Internet Banda Larga e ganhe o modem grátis. Clique em
  http://www.oi.com.br/bandalarga e aproveite essa moleza!
 
 
 
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
  
 
  --
  Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
  inteira responsabilidade de seus remetentes.
  Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
  --
  Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR TEM
  SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/
  -- Links do
 Yahoo!
  Grupos
 
 
 
 

 --
 Na Oi Internet você ganha ou ganha. Além de acesso grátis com
 qualidade, você pode ter contas ilimitadas de email com 1 giga cada uma,
 suporte grátis e muito mais. Baixe grátis o Discador Oi em
 http://www.oi.com.br/discador e comece a ganhar.

 Agora, se o seu negócio é voar alto na internet,
 assine Oi Internet Banda Larga e ganhe o modem grátis. Clique em
 http://www.oi.com.br/bandalarga e aproveite essa moleza!





 [As partes desta mensagem que não continham texto foram removidas]




Lílian B. Oliveira
Analista de Sistemas
Implantação - Teknisa SP



Re: [oracle_br] Explain plan: significado das notas de rodapé

2008-08-08 Por tôpico Andre Santos
Rodrigo

Achei interessante o que você explicou!
Mas seriam casos de exceção, não é? --- estou imaginando tabelas que
sofressem muitas alterações (e muito freqüentemente), a ponto de mudar
significativamente seu perfil de distribuição de dados...

Novamente, obrigado!

[ ]

André


Em 08/08/08, Andre Santos [EMAIL PROTECTED] escreveu:

 Grande Rodrigo

 Valeu pela observação! Obrigado!

 [ ]

 André


 Em 08/08/08, Rodrigo Mufalani [EMAIL PROTECTED] escreveu:


 André,

 Como tudo no mundo Oracle tem seus dois lados da moeda, há casos que
 o Dynamic sampling é recomendado sim.

 Tabelas que normalmente são muito atualizadas. Você pode deletar as
 estatísticas e fazer lock das estatísticas das mesmas.

 Com isso o oracle pode se beneficiar no uso do dynamic sampling.

 Atenciosamente,

 Rodrigo Mufalani
 OCP 10g  11g
 [EMAIL PROTECTED] mufalani%40oi.com.br

  Mensagem Original:
  Data: 16:58:02 08/08/2008
  De: Andre Santos [EMAIL PROTECTED]andre.psantos.ti%40gmail.com
 
  Assunto: Re: [oracle_br] Explain plan: significado das notas de rodapé

  Lílian
 
  Só complementando o que o Rodrigo explicou, o dynamic sampling ocorre
  porque:
 
  - O otimizador está configurado em choose, ou seja, utilizará CBO
 sempre
  que possível.
 
  - Na consulta há tabela(s) com estatística e tabela(s) sem
 estatística... aí
  o otimizador fará uma coleta de amostra automaticamente (e temporária
  apenas para a execução) dessa(s) tabela(s) sem estatística, para
 determinar
  o plano de acesso da consulta. E isso não é recomendável.
 
  Verifique as tabelas que estejam sem estatística e faça a coleta para
 elas.
  [ ]
 
  André
 
 
  Em 08/08/08, Rodrigo Mufalani [EMAIL PROTECTED]mufalani%40oi.com.br
 escreveu:
 
 
  Provavelmente vc tem no schema uma plan_table criada de uma versão
  anterior a 10.2 o script para criar a plan_table na versão correta
  está em:
 
  $ORACLE_HOME/rdbms/admin/utlxplan.sql
 
  Dá uma procurada sobre dinamyc sampling... isso é para coletar
  estatísticas em tempo de execução.
 
  Atenciosamente,
 
  Rodrigo Mufalani
  OCP 10g  11g
  [EMAIL PROTECTED] mufalani%40oi.com.br mufalani%40oi.com.br
 
   Mensagem Original:
   Data: 16:13:02 08/08/2008
   De: Lilian Barroso de Oliveira
  [EMAIL PROTECTED] lilian.oliveira%40teknisa.com
 lilian.oliveira%40teknisa.com
  
   Assunto: [oracle_br] Explain plan: significado das notas de rodapé
 
   Olá a todos!
  
  
   Estou em um projeto de tuning de aplicação e, ao gerar planos de
 execução
   das queries, sempre há uma nota de rodaté (note), que na maioria dos
  casos
   é:
   
   Note
   -
   - 'PLAN_TABLE' is old version
   
  
   Além desta mensagem, apenas uma vez eu vi a seguinte:
   
   Note
   -
   - dynamic sampling used for this statement
   
  
   Alguém saberia explicar o que significam estas mensagens?(Utilizo o
  Oracle
   10.2 )
  
  
   Obrigada,
   Lílian Barroso
  
   
  
   --
   Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
   inteira responsabilidade de seus remetentes.
   Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
   --
   Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR TEM
   SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/
   -- Links do
  Yahoo!
   Grupos
  
  
  
  
 
  --
  Na Oi Internet você ganha ou ganha. Além de acesso grátis com
  qualidade, você pode ter contas ilimitadas de email com 1 giga cada
 uma,
  suporte grátis e muito mais. Baixe grátis o Discador Oi em
  http://www.oi.com.br/discador e comece a ganhar.
 
  Agora, se o seu negócio é voar alto na internet,
  assine Oi Internet Banda Larga e ganhe o modem grátis. Clique em
  http://www.oi.com.br/bandalarga e aproveite essa moleza!
 
 
 
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
  
 
  --
  Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
  inteira responsabilidade de seus remetentes.
  Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
  --
  Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR TEM
  SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/
  -- Links do
 Yahoo!
  Grupos
 
 
 
 

 --
 Na Oi Internet você ganha ou ganha. Além de acesso grátis com
 qualidade, você pode ter contas ilimitadas de email com 1 giga cada uma,
 suporte grátis e muito mais. Baixe grátis o Discador Oi em
 http://www.oi.com.br/discador e comece a ganhar.

 Agora, se o seu negócio é voar alto na internet,
 assine Oi Internet 

Re: [oracle_br] Explain plan: significado das notas de rodapé

2008-08-08 Por tôpico Andre Santos
Depois de mandar a mensagem, vi que ficou meio sem sentido... ;^p r

Mencionei de ser um caso de exceção, pensando que uma *coleta diária* para
essa tabela seria melhor do que uma coleta dinâmica (na maioria dos
casos).

Agora sim, passei a idéia.  =)

[ ]'s

André


Em 08/08/08, Andre Santos [EMAIL PROTECTED] escreveu:

 Rodrigo

 Achei interessante o que você explicou!
 Mas seriam casos de exceção, não é? --- estou imaginando tabelas que
 sofressem muitas alterações (e muito freqüentemente), a ponto de mudar
 significativamente seu perfil de distribuição de dados...

 Novamente, obrigado!

 [ ]

 André


 Em 08/08/08, Andre Santos [EMAIL PROTECTED] escreveu:

 Grande Rodrigo

 Valeu pela observação! Obrigado!

 [ ]

 André


 Em 08/08/08, Rodrigo Mufalani [EMAIL PROTECTED] escreveu:


 André,

 Como tudo no mundo Oracle tem seus dois lados da moeda, há casos que
 o Dynamic sampling é recomendado sim.

 Tabelas que normalmente são muito atualizadas. Você pode deletar as
 estatísticas e fazer lock das estatísticas das mesmas.

 Com isso o oracle pode se beneficiar no uso do dynamic sampling.

 Atenciosamente,

 Rodrigo Mufalani
 OCP 10g  11g
 [EMAIL PROTECTED] mufalani%40oi.com.br

  Mensagem Original:
  Data: 16:58:02 08/08/2008
  De: Andre Santos [EMAIL PROTECTED]andre.psantos.ti%40gmail.com
 
  Assunto: Re: [oracle_br] Explain plan: significado das notas de
 rodapé

  Lílian
 
  Só complementando o que o Rodrigo explicou, o dynamic sampling ocorre
  porque:
 
  - O otimizador está configurado em choose, ou seja, utilizará CBO
 sempre
  que possível.
 
  - Na consulta há tabela(s) com estatística e tabela(s) sem
 estatística... aí
  o otimizador fará uma coleta de amostra automaticamente (e temporária
  apenas para a execução) dessa(s) tabela(s) sem estatística, para
 determinar
  o plano de acesso da consulta. E isso não é recomendável.
 
  Verifique as tabelas que estejam sem estatística e faça a coleta para
 elas.
  [ ]
 
  André
 
 
  Em 08/08/08, Rodrigo Mufalani [EMAIL PROTECTED]mufalani%40oi.com.br
 escreveu:
 
 
  Provavelmente vc tem no schema uma plan_table criada de uma versão
  anterior a 10.2 o script para criar a plan_table na versão correta
  está em:
 
  $ORACLE_HOME/rdbms/admin/utlxplan.sql
 
  Dá uma procurada sobre dinamyc sampling... isso é para coletar
  estatísticas em tempo de execução.
 
  Atenciosamente,
 
  Rodrigo Mufalani
  OCP 10g  11g
  [EMAIL PROTECTED] mufalani%40oi.com.br mufalani%40oi.com.br
 
   Mensagem Original:
   Data: 16:13:02 08/08/2008
   De: Lilian Barroso de Oliveira
  [EMAIL PROTECTED] lilian.oliveira%40teknisa.com
 lilian.oliveira%40teknisa.com
  
   Assunto: [oracle_br] Explain plan: significado das notas de rodapé
 
   Olá a todos!
  
  
   Estou em um projeto de tuning de aplicação e, ao gerar planos de
 execução
   das queries, sempre há uma nota de rodaté (note), que na maioria dos
  casos
   é:
   
   Note
   -
   - 'PLAN_TABLE' is old version
   
  
   Além desta mensagem, apenas uma vez eu vi a seguinte:
   
   Note
   -
   - dynamic sampling used for this statement
   
  
   Alguém saberia explicar o que significam estas mensagens?(Utilizo o
  Oracle
   10.2 )
  
  
   Obrigada,
   Lílian Barroso
  
   
  
   --
   Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
   inteira responsabilidade de seus remetentes.
   Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
   --
   Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR TEM
   SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/
   -- Links do
  Yahoo!
   Grupos
  
  
  
  
 
  --
  Na Oi Internet você ganha ou ganha. Além de acesso grátis com
  qualidade, você pode ter contas ilimitadas de email com 1 giga cada
 uma,
  suporte grátis e muito mais. Baixe grátis o Discador Oi em
  http://www.oi.com.br/discador e comece a ganhar.
 
  Agora, se o seu negócio é voar alto na internet,
  assine Oi Internet Banda Larga e ganhe o modem grátis. Clique em
  http://www.oi.com.br/bandalarga e aproveite essa moleza!
 
 
 
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
  
 
  --
  Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
  inteira responsabilidade de seus remetentes.
  Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
  --
  Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR TEM
  SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/
  -- Links do
 Yahoo!
  Grupos
 
 
 
 

 

[oracle_br] O que é Child Number (views gv$sql_plan)

2008-08-08 Por tôpico Lilian Barroso de Oliveira
Olá a todos

Tenho trabalhado em um projeto de tuning de aplicação, que envolve análise
das queries através de planos de execução; uma das views que mais utilizo
para é a gv$sql_plan, que através de um join com a gv$sqlarea consigo
descobrir quais são os planos de execução em memória e quais estão sendo
utilizados.

Uma das coisas que me intrigam é o fato de que, as vezes, o Oracle
armazena o mesmo plano de acesso (inclusive com o mesmo custo) com Child
Numbers diferentes. Mas, o que é o Child Number? E, porque ele muda, sendo
que as vezes o plano de execução é o mesmo?

Por exemplo: A query abaixo traz todos os planos de execução em memória,
com custo e por instância, de uma certa query (identificada por
hash_value)
, e o plano que está em uso pelo Oracle
/*
(
SELECT  DISTINCT (SP.CHILD_ADDRESS) ,
SP.INST_ID,
SP.CHILD_NUMBER,
SP.HASH_VALUE,
SP.PLAN_HASH_VALUE,
MAX(SP.COST) CUSTO,
MAX(SP.IO_COST) CUSTO_IO,
MAX(SP.CPU_COST) CUSTO_CPU,
'' STATUS
FROM GV$SQL_PLAN SP
WHERE HASH_VALUE = 3643588562
GROUP BY SP.CHILD_ADDRESS, SP.INST_ID,CHILD_NUMBER, SP.HASH_VALUE,
SP.PLAN_HASH_VALUE
MINUS
SELECT  DISTINCT (SP.CHILD_ADDRESS) ,
SP.INST_ID,
SP.CHILD_NUMBER,
SP.HASH_VALUE,
SP.PLAN_HASH_VALUE,
MAX(SP.COST) CUSTO,
MAX(SP.IO_COST) CUSTO_IO,
MAX(SP.CPU_COST) CUSTO_CPU,
'' STATUS
FROM GV$SQL_PLAN SP ,
 GV$SQLAREA SA
WHERE SP.HASH_VALUE = 3643588562
  AND SP.CHILD_ADDRESS = SA.LAST_ACTIVE_CHILD_ADDRESS
GROUP BY SP.CHILD_ADDRESS,
 SP.INST_ID,CHILD_NUMBER,
 SP.HASH_VALUE,
 SP.PLAN_HASH_VALUE)
UNION
  SELECT  DISTINCT (SP.CHILD_ADDRESS) ,
  SP.INST_ID,
  SP.CHILD_NUMBER,
  SP.HASH_VALUE,
  SP.PLAN_HASH_VALUE,
  MAX(SP.COST) CUSTO,
  MAX(SP.IO_COST) CUSTO_IO,
  MAX(SP.CPU_COST) CUSTO_CPU,
  'EM USO' STATUS
  FROM GV$SQL_PLAN SP ,
   GV$SQLAREA SA
  WHERE SP.HASH_VALUE = 3643588562
 AND SP.CHILD_ADDRESS = SA.LAST_ACTIVE_CHILD_ADDRESS
  GROUP BY SP.CHILD_ADDRESS,
SP.INST_ID,
CHILD_NUMBER,
SP.HASH_VALUE,
SP.PLAN_HASH_VALUE
  ORDER BY INST_ID,
   CHILD_NUMBER

*/

resultado:

/*
CHILD_ADDRESS   INST_ID CHILD_NUMBER HASH_VALUE PLAN_HASH_VALUE 
CUSTO   CUSTO_IO  CUSTO_CPU STATUS
 --  -- ---
-- -- --
00024E1F0F20  10 3643588562  2999871912   
209207   19905805
0002234F3380  11 3643588562  2999871912   
209207   19905804
000254DE3D00  12 3643588562  2999871912   
209207   19905804 EM USO
00022728E810  20 3643588562  2999871912   
209207   19905804
00019FCC8BD8  21 3643588562  2999871912   
209207   19905804 EM USO
00029AFACFA0  30 3643588562  2999871912   
209207   19905805
0002965FD790  31 3643588562  2999871912   
209207   19905804
00022AA0A328  32 3643588562  2999871912   
209207   19905804
00021D858778  33 3643588562  2999871912   
209207   19905804
00017F67D698  34 3643588562  2999871912   
209207   19905804 EM USO
0001649F3BB0  35 3643588562  2999871912   
209207   19905804

*/

Observem que a mesma query tem o mesmo plano de execução para as três
instâncias, mas para cada instância há vários child number diferentes .
Alguém saberia dizer o que ele significa?

(Ah, se alguém quiser aperfeiçoar a query, esteja a vontade!)



Obrigada,
Lílian Barroso




Re: [oracle_br] Estranho !! 20.000 cursores abertos ?

2008-08-08 Por tôpico Diego Leite
Amigo,

A sua aplicacao esta respeitando o open,fetch e close??? Para vc ter
uma ideia de surealismo a oracle recomenda que nao ultrapasse o
PARAMETRO OPEN_CURSOR valor de 600.. verifique dentro dos seus codigos
pl's.

tenta fazer uma query para identificar seus pl's

logado como owner.

select count(name),TYPE  from user_source where text not like '%CLOSE%'
and text like '%OPEN%'
GROUP BY TYPE

algo desse tipo.

Obs:nunca tentei... e estou sem oracle aki...algo desse tipo.

VE SE TE ADIANTA. ATE ALGUEM TENTAR TE AJUDAR!!!



2008/8/8 amorrimm [EMAIL PROTECTED]:
 Boa tarde pessoal,

 Tenho um problema...na verdade, é uma dúvida...

 Fiz uma verificação recente em um banco 10G onde me pediram que
 aumentasse os cursores do mesmo, pois a capacidade havia estourado.
 Pois bem, aumentei os cursores de 300 (padrão) para 1000 e novamente
 estourou.

 Fiz uma verificação e descobri que no momento, os cursores estavam em
 20.000 abertos ?? Não vou perguntar se é normal pq acredito que não
 seja...fiz uma verificação no maior consumidor e seria uma aplicação de
 front-end..só ela estaria consumindo 17.870 cursores

 Me recordo que no 9i ou no 8i tinha algum bug referente a cursores..não
 é ? Será que estes cursores tem haver somento com a aplicação (pelo que
 entendi sim) ou poderia ser alguma coisa de banco ?

 



-- 
Att,


Diego Leite - DBA Jr.


[oracle_br] Import NOROWS

2008-08-08 Por tôpico logg
Salve,
Estou com um problema um tanto quanto esquisito.
Recebi um export norows  e ao tentar subir ele esta criando as tabelas e 
consumindo um espaço absurdo nas tablespaces como se as tabelas  tivessem o 
tamanho original da base do export .
Estou fazendo o import da seguinte maneira:

IMP 'sys/123 as sysdba' FILE=meudump.DMP fromuser=USR1 touser=USR2 IGNORE=Y 
GRANTS=N FEEDBACK=1 COMMIT=Y BUFFER=2 LOG=LOG.log ROWS=Y CONSTRAINTS=N 
INDEXES=N

Alguém já passou por isto ???
Será que foi feito o export de mandeira errada ???
Teria algum comando para gerar em arquivo texto os objetos do dump (tabelas, 
indices, triggers, procedures, functions, etc...)
PS: as duas versões são 10G.


[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Import NOROWS

2008-08-08 Por tôpico Diego Leite
Amigo,

Vc desculpe a pergunta, mais vc sabe o q significa kda parametro?? no imp??

rown=y??? contraints=n?? indexes=n???!


ja tentou importar com o rows=n???


2008/8/8 logg [EMAIL PROTECTED]:
 Salve,
 Estou com um problema um tanto quanto esquisito.
 Recebi um export norows e ao tentar subir ele esta criando as tabelas e
 consumindo um espaço absurdo nas tablespaces como se as tabelas tivessem o
 tamanho original da base do export .
 Estou fazendo o import da seguinte maneira:

 IMP 'sys/123 as sysdba' FILE=meudump.DMP fromuser=USR1 touser=USR2 IGNORE=Y
 GRANTS=N FEEDBACK=1 COMMIT=Y BUFFER=2 LOG=LOG.log ROWS=Y
 CONSTRAINTS=N INDEXES=N

 Alguém já passou por isto ???
 Será que foi feito o export de mandeira errada ???
 Teria algum comando para gerar em arquivo texto os objetos do dump (tabelas,
 indices, triggers, procedures, functions, etc...)
 PS: as duas versões são 10G.

 [As partes desta mensagem que não continham texto foram removidas]

 



-- 
Att,


Diego Leite - DBA Jr.