RES: [oracle_br] Table size
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
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...
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
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
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
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
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 ?
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é
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é
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é
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é
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é
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)
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 ?
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
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
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.