Re: [oracle_br] Re: Filtra campo dentro do From
Bom dia pessoal, fiz os testes aqui e a sintaxe funcionou normalmente...mas vou seguir a sugestão do Fabio e utilizar o padrão ANSI/SQL..obrigado a todos pela atenção.. []s Emerson Sanches Analista de Sistemas Em 22 de julho de 2013 19:57, Fabio Prado fbifa...@gmail.com escreveu: Emerson, Não há vantagem alguma. Aprenda a analisar um plano de execução que você verá que o que estou falando é verdade. Segue abaixo o link de um artigo meu sobre o básico de como gerar e analisar um plano de execução: http://www.fabioprado.net/2011/03/analisando-o-plano-de-execucao-para.html []s Em 22 de julho de 2013 19:52, Emerson Sanches emerson.sanc...@gmail.comescreveu: ** Boa noite pessoal..desculpe a demora em dar a resposta,mas estava viajando do trabalho ate em casa...rs. Fabio, é exatamente isso que eu vi, pensei que fazer isso trouxesse alguma vantagem pois poderia fazer o join com a segunda tabela já filtrada da coisas que nao quero, achei que assim poderia ficar mais rapido. Só vou conseguir testar a sintaxe amanha, testo e coloco um posição na lista. Obrigado pela atenção de todos, Emerson Sanches Analista de Sistemas Em 22 de julho de 2013 18:47, Fabio Prado fbifa...@gmail.com escreveu: Chiappa, É possível sim fazer o filtro na cláusula ON do JOIN (veja exemplo abaixo no schema HR), porém ninguém recomenda fazer isso. Uma das vantagens do padrão ANSI é justamente separar o que é filtro e o que é relacionamento. Fazer filtro no JOIN bagunça tudo de novo o código! select e.first_name, d.department_name from hr.employees e inner join hr.departments d on e.department_id = d.department_id and e.department_id = 10; Para aqueles que quiserem pesquisar mais sobre a diferença do padrão ANSI e o padrão ou dialeto Oracle, consulte: http://www.fabioprado.net/2012/05/sql-padrao-ansi-x-padrao-oracle.html []s Fábio Prado Em 22 de julho de 2013 17:48, J. Laurindo Chiappa jlchia...@yahoo.com.brescreveu: ** Vc quer dizer que, na seção de JOIN da cláusula de FROM (usando sintaxe ANSI, portanto), ao invés de comparação entre colunas tipo : SELECT colunasquequero FROM tabela1 JOIN tabela2 ON colunatal = colunaqual; vc viu algo tipo, digamos : SELECT colunasquequero FROM tabela1 JOIN tabela2 ON colunatal = colunaqual AND coluna 45; ou seja, tinha Filtragem mesmo na cláusula FROM Se sim, vc Tem certeza que viu isso no RDBMS Oracle Pois eu nunca vi isso não, e em toda documentação/referência que conheço é citada comparação entre colunas para indicar a chave do JOIN, com valores eu nunca ouvi falar []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Emerson Sanches emerson.sanches@ ... escreveu Na realidade achei que dava pra fazer uma condição na recuperação de dados mesmo...lembro de ter visto isso em um join... Emerson Sanches Analista de Sistemas Em 22 de julho de 2013 17:29, J. Laurindo Chiappa jlchiappa@...escreveu: ** Miltão, acho que podemos dar por ** muito muito Provável** , se não garantido, que o colega lá usou uma terminologia meio inapropriada, pra dizer o mínimo Emerson, normalmente por FILTRO em colunas no contexto de databases a gente entende que vc quer aplicar uma CONDIÇÃO na recuperação de dados (ie, receber apenas os registros/linhas aonde uma comparação - de igualdade, desigualdade, maior/menor, membro de sub-conjunto, etc - seja verdadeira para uma dada coluna), e isso COM CERTEZA não se faz em cláusula FROM de um SQL TALVEZ o que vc queira na verdade é restringir um dado SQL para que EXIBA apenas algumas colunas dentro de uma lista maior, aí sim vc usaria uma cláusula FROM, no estilo : SELECT colunaqueeuqueroexibir FROM (SELECT listadecolunasmuitomaior FROM nomedatabela...); ok ? É isso que vc quis dizer com filtro ?? Se não é, plz Explica melhor []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Milton Bastos Henriquis Jr. miltonbastos@ escreveu Rapaz... melhor vc perguntar lá no Posto Ipiranga... rs... Filtro na clausula FROM eu particularmente desconheço! Não me lembro de ter visto isso! Alguém conhece??? 2013/7/22 emerson_sanches emerson.sanches@ ** Boa tarde pessoal da lista, sei que dá pra fazer isso, mas to apanhando pra achar na net. Gostaria de fazer o filtro de um campo na clausula
Re: RES: [oracle_br] RMAN - começando
Pegando o embalo do nosso amigo Márcio, eu queria alguma referêcnia de um bom livro de RMAN, que abordasse mais a prática, o dia dia, problemas, um livro que não desse tanta ênfase a parte teórica e a arquitetura, pois já tenho um livro que aborda muita teoria e a arquitetura do RMAN. De: Grupos marcio_...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Segunda-feira, 22 de Julho de 2013 13:53 Assunto: RES: [oracle_br] RMAN - começando Milton, Antes de ir para os livros e referências, eu li todos esses artigos no seu site. Agora como o Welvis comentou, é aprofundar e familiarizar com o RMAN. Abraços. -Mensagem original- De: mailto:oracle_br%40yahoogrupos.com.br [mailto:mailto:oracle_br%40yahoogrupos.com.br] Em nome de Milton Bastos Henriquis Jr. Enviada em: segunda-feira, 22 de julho de 2013 11:51 Para: mailto:oracle_br%40yahoogrupos.com.br Assunto: Re: [oracle_br] RMAN - começando Os meus archives ficam em um disco separado, e quando efetuo backup faço a limpeza dos archives backupeados, acredito que o erro ocorre por conta desse procedimento. Quando vc apaga manualmente seus archives, o catálogo do RMAN não sabe que eles não existem mais. O modo correto de fazer isso é deixar que o próprio RMAN apague os archives que já foram backupeados. Isso é feito pelo comando: delete obsolete lá dentro do RMAN mesmo (este comando deve entrar no teu script). Referencia pra vc estudar o básico de forma rápida e prática: RMAN Backup usando RMAN Monografia – RMAN (Oracle 9i) RMAN – Comandos e Configurações OCP 11g – Capítulo 3: Catálogo do RMAN (parte 1) OCP 11g – Capítulo 3: Catálogo do RMAN (parte 2) OCP 11g – Capítulo 4: Criando backups do RMAN (parte 1) OCP 11g - Capítulo 4: Criando backups do RMAN (parte 2) Todos esses artigos estão no link: http://certificacaobd.com.br/dbarea-oracle/ 2013/7/22 Grupos mailto:marcio_cbj%40yahoo.com.br ** Boas. Estou começando testes para implementação do RMAN aqui na empresa, ainda de uma maneira básica. Na minha crontab, eu tenho um agendamento que chama um script que contém o seguinte comando dentro: “backup database plus archivelog;” Esse agendamento não está dando certo, executei o comando na mão e apresentava erro de não ter encontrado os ARCHIVELOGs. Executei o comando “crosscheck archivelog all”, após isso o backup foi efetuado. Os meus archives ficam em um disco separado, e quando efetuo backup faço a limpeza dos archives backupeados, acredito que o erro ocorre por conta desse procedimento. Minha dúvida é a seguinte, eu tenho que executar o crosscheck antes do meu script de backup, ou a maneira na qual estou fazendo não está correto? Grato. [As partes desta mensagem que não continham texto foram removidas] [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/ -- -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ -- Links do Yahoo! Grupos [As partes desta mensagem que não continham texto foram removidas]
Re: RES: [oracle_br] RMAN - começando
A série Recipes é o que tu procura (abordagem prática de cenários) http://www.amazon.com/RMAN-Recipes-Oracle-Database-Problem-Solution/dp/1590598512 Att,/Regards, Vitor Jr. Infraestrutura / Infrastructure Team Oracle 11g DBA Certified Professional - OCP Oracle Certified Expert, Oracle Real Application Clusters 11g and Grid Infrastructure Administrator - OCE Oracle Database 11g Performance Tuning Certified Expert - OCE Oracle Exadata 11g Certified Implementation Specialist Oracle Certified Associate, MySQL 5 mail, gtalk e msn: vitorj...@gmail.com http://certificacaobd.com.br/ skype: vjunior1981 Em 23 de julho de 2013 13:07, Rafael Mendonca raffaell.t...@yahoo.comescreveu: ** Pegando o embalo do nosso amigo Márcio, eu queria alguma referêcnia de um bom livro de RMAN, que abordasse mais a prática, o dia dia, problemas, um livro que não desse tanta ênfase a parte teórica e a arquitetura, pois já tenho um livro que aborda muita teoria e a arquitetura do RMAN. De: Grupos marcio_...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Segunda-feira, 22 de Julho de 2013 13:53 Assunto: RES: [oracle_br] RMAN - começando Milton, Antes de ir para os livros e referências, eu li todos esses artigos no seu site. Agora como o Welvis comentou, é aprofundar e familiarizar com o RMAN. Abraços. -Mensagem original- De: mailto:oracle_br%40yahoogrupos.com.br [mailto:mailto:oracle_br% 40yahoogrupos.com.br] Em nome de Milton Bastos Henriquis Jr. Enviada em: segunda-feira, 22 de julho de 2013 11:51 Para: mailto:oracle_br%40yahoogrupos.com.br Assunto: Re: [oracle_br] RMAN - começando Os meus archives ficam em um disco separado, e quando efetuo backup faço a limpeza dos archives backupeados, acredito que o erro ocorre por conta desse procedimento. Quando vc apaga manualmente seus archives, o catálogo do RMAN não sabe que eles não existem mais. O modo correto de fazer isso é deixar que o próprio RMAN apague os archives que já foram backupeados. Isso é feito pelo comando: delete obsolete lá dentro do RMAN mesmo (este comando deve entrar no teu script). Referencia pra vc estudar o básico de forma rápida e prática: RMAN Backup usando RMAN Monografia RMAN (Oracle 9i) RMAN Comandos e Configurações OCP 11g Capítulo 3: Catálogo do RMAN (parte 1) OCP 11g Capítulo 3: Catálogo do RMAN (parte 2) OCP 11g Capítulo 4: Criando backups do RMAN (parte 1) OCP 11g - Capítulo 4: Criando backups do RMAN (parte 2) Todos esses artigos estão no link: http://certificacaobd.com.br/dbarea-oracle/ 2013/7/22 Grupos mailto:marcio_cbj%40yahoo.com.br ** Boas. Estou começando testes para implementação do RMAN aqui na empresa, ainda de uma maneira básica. Na minha crontab, eu tenho um agendamento que chama um script que contém o seguinte comando dentro: backup database plus archivelog; Esse agendamento não está dando certo, executei o comando na mão e apresentava erro de não ter encontrado os ARCHIVELOGs. Executei o comando crosscheck archivelog all, após isso o backup foi efetuado. Os meus archives ficam em um disco separado, e quando efetuo backup faço a limpeza dos archives backupeados, acredito que o erro ocorre por conta desse procedimento. Minha dúvida é a seguinte, eu tenho que executar o crosscheck antes do meu script de backup, ou a maneira na qual estou fazendo não está correto? Grato. [As partes desta mensagem que não continham texto foram removidas] [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/ -- -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ -- Links do Yahoo! Grupos [As partes desta mensagem que não continham texto foram removidas] [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/ -- Apostilas » Dicas e
[oracle_br] Instalação Oracle Developer Suite 32 bits - Windows 7 64 bits
PessoALL... Preciso instalar o Oracle Developer Suite, versão 32 bits na minha estação de trabalho que possui o Win7 64 Bits instalado. Ao tentar instalar ele incorre em falha, informando sobre a versão do SO: deve ser 5.0, 5.1, 5.2 - Reais 6.1. Em seguida, tentei efetuar a instalação utilizando a feature de instalação por compatibilidade, porém ele dá o seguinte erro: Verificando espaço de swap: 0 MB disponíveis, 1535 MB necessários. Sabem como posso resolver esta situação? Obrigado à todos! Matheus [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Tabela Mutante
Obrigado, a solução encontrada foi via package mesmo... De: Fabio Prado fbifa...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Segunda-feira, 22 de Julho de 2013 23:31 Assunto: Re: [oracle_br] Tabela Mutante Jales, no link http://glufke.net/oracle/viewtopic.php?t=96 você encontrará a solução! []s Em 22 de julho de 2013 20:08, Jales Jose Moraes malphig...@yahoo.com.brescreveu: ** Sim fábio, estou tentando colocar uma outra trigger (dessa vez after, numa tentativa de resolver a questão). Você tem alguma idéia? De: Fabio Prado fbifa...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Segunda-feira, 22 de Julho de 2013 19:52 Assunto: Re: [oracle_br] Tabela Mutante dentro da trigger você está tentando alterar dados da mesma tabela? Em 22 de julho de 2013 19:03, Jales Jose Moraes malphig...@yahoo.com.brescreveu: ** Boa noite! Senhores estou tendo erro de tabela mutante da seguinte forma: Foi me passada uma nova regra onde ao inserir um novo registro, é para setar o registro antigo (update) com uma status 'N' e o novo registro com um status 'S'. Bom, fiz um cursor na trigger para localizar o registro antigo com base em uma número sequencial que é comum a ambos os registros, fiz o update e logo após o insert e então ganhei o erro abaixo: ORA-04091: a tabela SMS_FNDE.S_FINANC é mutante; talvez o gatilho/função não possa localizá-la ORA-06512: em SMS.A_IUD, line 197 ORA-04088: erro durante a execução do gatilho 'SMS.A_IUD' ORA-06512: em SMS.A_IUD, line 197 ORA-04088: erro durante a execução do gatilho 'SMS.A_IUD' Como resolver esta situação? [As partes desta mensagem que não continham texto foram removidas] -- Fábio Prado www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle [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/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ -- Links do Yahoo! Grupos [As partes desta mensagem que não continham texto foram removidas] -- Fábio Prado www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle [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/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ Links do Yahoo! Grupos [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] erro ao adicionar disco a um diskgroup
Bom dia pessoal Estamos com um probleminha ao adicionar um disco a um diskgroup no nosso oracle RAC. Cenário: Oracle RAC 11g R2 Red Hat 5.5 ASM Segue comandos e os respectivos erros: SQL alter diskgroup database add disk 'ORCL:DATABASEV7K' ; alter diskgroup database add disk 'ORCL:DATABASEV7K' * ERROR at line 1: ORA-15032: not all alterations performed ORA-15075: disk(s) are not visible cluster-wide SQL alter diskgroup database drop disk 'ORCL:DATABASEV7K' force; alter diskgroup database drop disk 'ORCL:DATABASEV7K' force * ERROR at line 1: ORA-15032: not all alterations performed ORA-15054: disk ORCL:DATABASEV7K does not exist in diskgroup DATABASE SQL Porém os discos estão sendo enchergados pelo ASM, inclusive tentamos a adição via interface gráfica e nao obtivemos sucesso. [root@alcomprasbd02 ~]# /etc/init.d/oracleasm scandisks Scanning the system for Oracle ASMLib disks: [ OK ] [root@alcomprasbd02 ~]# /etc/init.d/oracleasm listdisks ARCHIVELOG ARCHIVELOGV7K DATABASE DATABASEV7K Att, Emerson Martins DBA Oracle Oracle 11g Certified Associate *Contatos:* + 55 82 91235504 / + 55 82 96681283 [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] erro ao adicionar disco a um diskgroup
Boa tarde Emerson, Faça o scandisks em todos os nodes do cluster para ver se ele encontra o mesmo número de discos. Atenciosamente, Rodrigo Mufalani rodr...@mufalani.com.br www.mufalani.com.br On 23/07/2013, at 10:58, Emerson Martins emersonmarti...@gmail.com wrote: Bom dia pessoal Estamos com um probleminha ao adicionar um disco a um diskgroup no nosso oracle RAC. Cenário: Oracle RAC 11g R2 Red Hat 5.5 ASM Segue comandos e os respectivos erros: SQL alter diskgroup database add disk 'ORCL:DATABASEV7K' ; alter diskgroup database add disk 'ORCL:DATABASEV7K' * ERROR at line 1: ORA-15032: not all alterations performed ORA-15075: disk(s) are not visible cluster-wide SQL alter diskgroup database drop disk 'ORCL:DATABASEV7K' force; alter diskgroup database drop disk 'ORCL:DATABASEV7K' force * ERROR at line 1: ORA-15032: not all alterations performed ORA-15054: disk ORCL:DATABASEV7K does not exist in diskgroup DATABASE SQL Porém os discos estão sendo enchergados pelo ASM, inclusive tentamos a adição via interface gráfica e nao obtivemos sucesso. [root@alcomprasbd02 ~]# /etc/init.d/oracleasm scandisks Scanning the system for Oracle ASMLib disks: [ OK ] [root@alcomprasbd02 ~]# /etc/init.d/oracleasm listdisks ARCHIVELOG ARCHIVELOGV7K DATABASE DATABASEV7K Att, Emerson Martins DBA Oracle Oracle 11g Certified Associate *Contatos:* + 55 82 91235504 / + 55 82 96681283 [As partes desta mensagem que não continham texto foram removidas] [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/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: oracle_br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[oracle_br] USANDO 'OR' NO FILTRO
Pessoal, os dba´s sempre fala que no filtro quando tem a clausula OR deixa lento. Nesse caso testo se data dt_confirmacao_documento for null ele busca pela data gar.dt_vencimento como fazer isso sem usar o OR Muito obrigado select count(distinct mov.numero_venda) qtd ,sum(gar.saldo_devedor) total_saldo ,loj.unidade_servico from crd.empresa loj ,crd.cliente cli ,crd.vendas gar ,crd.pedido mov where loj.regional LIKE DECODE(p_regional, '0', '%','%' || p_regional || '%') and loj.filial LIKE DECODE(p_filial, '0', '%','%' || p_filial || '%') and loj.escritorio = p_escritorio and loj.grupo = p_cliente and loj.regional 'T0' and loj.filial 'T0' and loj.identificacao = '1' and loj.empresa = cli.empresa_origem and cli.cliente = gar.cliente and cli.empresa = gar.empresa and gar.flg_garantia = 'P' and (((dt_confirmacao_documento is not null) and trunc(dt_confirmacao_documento) = p_primeiro_dia) or ((dt_confirmacao_documento is null) and trunc(gar.dt_vencimento) = p_primeiro_dia)) and (((dt_confirmacao_documento is not null) and trunc(dt_confirmacao_documento) = p_ultimo_dia) or ((dt_confirmacao_documento is null) and trunc(gar.dt_vencimento) = p_ultimo_dia)) and gar.numero_venda = mov.numero_venda and mov.operacao = '01' and mov.produto LIKE DECODE(p_produto, '0', '%','%' || p_produto || '%') and mov.loja_empresa = loj.empresa and mov.loja_central = loj.central and mov.loja_loja = loj.loja --and (loj.fim_atividade is null or gar.dt_vencimento loj.fim_atividade) group by loj.unidade_servico order by loj.unidade_servico Elcio Francisco [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Re: Instalação Oracle Developer Suite 32 bits - Windows 7 64 bits
Colega, *** PLZ *** nos diga : EXATAMENTE QUAL release E qual versão (com 5 dígitos) do Oracle Developer Suite de 32-bits que vc está instalando ??? Qual patchset , se for developer 6i ?? Qual a Edição (Enterprise, Ultimate, whatever) do Windows ?? SE for developer 6, http://windows7bugs.wordpress.com/2010/03/01/installing-oracle-developer-forms-reports-6i-on-windows-7-64bit/ é a ref, e se for 10g (supondo ao menos 10.1.2.0.2) http://anythingsimple.blogspot.com.br/2011/01/install-oracle-developer-suite-10g-on.html e http://windows7bugs.wordpress.com/2010/02/18/install-oracle-10g-onward-database-developer-on-windows-7/ são refs, EMBORA eu pessoalmente tenha tido diversos problemas com 10.1.2.0.2 na hora de fazer o setup que só solucionei com a aplicação do patch que deixou em 10.1.2.0.3 : se for developer 10g, eu Recomendaria Muito que vc considerasse 10.1.2.0.3 como o mínimo E é CLARO que se for developer acima de 6i, vc AINDA vai ter a questão da Dependência de versão do JRE presente na hora de configurar para rodar []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Matheus Malta de Aguiar maltamatheus@... escreveu PessoALL... Preciso instalar o Oracle Developer Suite, versão 32 bits na minha estação de trabalho que possui o Win7 64 Bits instalado. Ao tentar instalar ele incorre em falha, informando sobre a versão do SO: deve ser 5.0, 5.1, 5.2 - Reais 6.1. Em seguida, tentei efetuar a instalação utilizando a feature de instalação por compatibilidade, porém ele dá o seguinte erro: Verificando espaço de swap: 0 MB disponíveis, 1535 MB necessários. Sabem como posso resolver esta situação? Obrigado à todos! Matheus [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] erro ao adicionar disco a um diskgroup
Você pode tentar passando o caminho completo para os devices dos discos ou LUNs, como /dev/mapper/mpath0 ou algo semelhante: SQL alter diskgroup database add disk '/dev/mapper/DATABASEV7K' name DATABASEV7K; -- Fernando Martins facebook.com/fernandomarp Linkedin: http://br.linkedin.com/pub/fernando-pereira/47/a92/97 God grant us the serenity to accept the things we cannot change, courage to change the things we can, and wisdom to know the difference. Em 23 de julho de 2013 14:51, Rodrigo Mufalani rodr...@mufalani.com.brescreveu: Boa tarde Emerson, Faça o scandisks em todos os nodes do cluster para ver se ele encontra o mesmo número de discos. Atenciosamente, Rodrigo Mufalani rodr...@mufalani.com.br www.mufalani.com.br On 23/07/2013, at 10:58, Emerson Martins emersonmarti...@gmail.com wrote: Bom dia pessoal Estamos com um probleminha ao adicionar um disco a um diskgroup no nosso oracle RAC. Cenário: Oracle RAC 11g R2 Red Hat 5.5 ASM Segue comandos e os respectivos erros: SQL alter diskgroup database add disk 'ORCL:DATABASEV7K' ; alter diskgroup database add disk 'ORCL:DATABASEV7K' * ERROR at line 1: ORA-15032: not all alterations performed ORA-15075: disk(s) are not visible cluster-wide SQL alter diskgroup database drop disk 'ORCL:DATABASEV7K' force; alter diskgroup database drop disk 'ORCL:DATABASEV7K' force * ERROR at line 1: ORA-15032: not all alterations performed ORA-15054: disk ORCL:DATABASEV7K does not exist in diskgroup DATABASE SQL Porém os discos estão sendo enchergados pelo ASM, inclusive tentamos a adição via interface gráfica e nao obtivemos sucesso. [root@alcomprasbd02 ~]# /etc/init.d/oracleasm scandisks Scanning the system for Oracle ASMLib disks: [ OK ] [root@alcomprasbd02 ~]# /etc/init.d/oracleasm listdisks ARCHIVELOG ARCHIVELOGV7K DATABASE DATABASEV7K Att, Emerson Martins DBA Oracle Oracle 11g Certified Associate *Contatos:* + 55 82 91235504 / + 55 82 96681283 [As partes desta mensagem que não continham texto foram removidas] [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/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ Links do Yahoo! Grupos [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Atrasar um processo por 64 segundos.
Boa tarde, pessoal! Preciso fazer uma script que segure um processo por 64 segundos. Alguém poderia me auxiliar de como criar? At.: Carlos SilvaSkype - carlos-csilva [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Atrasar um processo por 64 segundos.
Você quer fazer com que o processo durma por 64 segundos? Tente isso, se for em PL/SQL o seu processamento: DBMS_LOCK.SLEEP(64); Em 23 de julho de 2013 15:27, Carlos Silva carlos-csi...@hotmail.comescreveu: ** Boa tarde, pessoal! Preciso fazer uma script que segure um processo por 64 segundos. Alguém poderia me auxiliar de como criar? At.: Carlos SilvaSkype - carlos-csilva [As partes desta mensagem que não continham texto foram removidas] -- ***Fabrício Pedroso Jorge.* Administrador de Banco de Dados Oracle 11g Certified SQL Expert Oracle 11g Certified Associate Oracle 11g Certified Professional Linux Professional Institute Certified Level I (LPIC-I) ITIL V3 Foudations certificacaodb.com.br *Resumo Profissional:* http://br.linkedin.com/in/fabriciojorge *Contatos:* + 55 91 88991116 skype: fabricio.pedroso.jorge fpjb...@gmail.com [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/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: oracle_br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [oracle_br] Atrasar um processo por 64 segundos.
Carlos, vc tem que usar a procedure SLEEP da package DBMS_LOCK. Exemplo: BEGIN DBMS_LOCK.SLEEP (64); END; Se precisar usar dentro de uma instrução SQL, coloque o código que chama a procedure dentro de uma função e chame essa função dentro da instrução SQL. Mais informações: http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_lock.htm#i997212 []s Fábio Prado www.fabioprado.net Em 23 de julho de 2013 15:27, Carlos Silva carlos-csi...@hotmail.comescreveu: ** Boa tarde, pessoal! Preciso fazer uma script que segure um processo por 64 segundos. Alguém poderia me auxiliar de como criar? At.: Carlos SilvaSkype - carlos-csilva [As partes desta mensagem que não continham texto foram removidas] -- Fábio Prado www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle [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/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: oracle_br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[oracle_br] Re: USANDO 'OR' NO FILTRO
Bom, primeiro eu ** TENHO ** que dizer que alguém que diz, point-blank e generalizando, que X deixa lento, SEM dizer o porque, SEm testes/provas/caso repetível, para mim está usando regras de dedão for a de contexto, está é ESPALHANDO MITOS, falando abobrinha, okdoc ?? É algo semelhante aos tantos outros mitos de performance, tipo EXISTS é melhor/pior que IN - afirmações extraordinárias exigem provas extraordinárias Pra mim afirmação sem prova é a indicação CLARA que o sujeito é um dba, entre aspas e minúsculas totais Isso posto, a sua resposta - se por qquer motivo vc não quiser usar o NULL, sem analisar muito, eu ACHO que com : and (loj.fim_atividade is null or gar.dt_vencimento loj.fim_atividade) vc quer que se loj.fim_atividade for null NADA SEJA COMPARADO (o mesmo efeito que vc fazer uma comparação sempre verdadeira), e que quando loj.fim_atividade NÃO for null aí sim a comparação deve ser feita com gar.dt_vencimento loj.fim_atividade Sabendo (como já comentado em outra thread recentemente) que uma das possibilidades ao se lidar com NULL é o NVL, poderíamos usar : and gar.dt_vencimento nvl(loj.fim_atividade, to_date('31/12/', 'dd/mm/') ) ok ? A linha acima é praticamente a tradução do que eu disse em português : SE fim_atividade for null o valor retornado pelo NVL é um valor que necessariamente é maior que dt_vencimento, portanto sempre sendo verdadeira, E SE fim_atividade for não-nulo, aí a comparação é dt_vencimento loj.fim_atividade , como desejado, acho eu []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Elcio Francisco elciofrancisco@... escreveu Pessoal, os dba´s sempre fala que no filtro quando tem a clausula OR deixa lento. Nesse caso testo se data dt_confirmacao_documento for null ele busca pela data gar.dt_vencimento como fazer isso sem usar o OR Muito obrigado select count(distinct mov.numero_venda) qtd ,sum(gar.saldo_devedor) total_saldo ,loj.unidade_servico from crd.empresa loj ,crd.cliente cli ,crd.vendas gar ,crd.pedido mov where loj.regional LIKE DECODE(p_regional, '0', '%','%' || p_regional || '%') and loj.filial LIKE DECODE(p_filial, '0', '%','%' || p_filial || '%') and loj.escritorio = p_escritorio and loj.grupo = p_cliente and loj.regional 'T0' and loj.filial 'T0' and loj.identificacao = '1' and loj.empresa = cli.empresa_origem and cli.cliente = gar.cliente and cli.empresa = gar.empresa and gar.flg_garantia = 'P' and (((dt_confirmacao_documento is not null) and trunc(dt_confirmacao_documento) = p_primeiro_dia) or ((dt_confirmacao_documento is null) and trunc(gar.dt_vencimento) = p_primeiro_dia)) and (((dt_confirmacao_documento is not null) and trunc(dt_confirmacao_documento) = p_ultimo_dia) or ((dt_confirmacao_documento is null) and trunc(gar.dt_vencimento) = p_ultimo_dia)) and gar.numero_venda = mov.numero_venda and mov.operacao = '01' and mov.produto LIKE DECODE(p_produto, '0', '%','%' || p_produto || '%') and mov.loja_empresa = loj.empresa and mov.loja_central = loj.central and mov.loja_loja = loj.loja --and (loj.fim_atividade is null or gar.dt_vencimento loj.fim_atividade) group by loj.unidade_servico order by loj.unidade_servico Elcio Francisco [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: USANDO 'OR' NO FILTRO
Eu entendo amigo Chiappa te agradeço por sempre esta nos ajudando, o que você diz e te agradeço mas minha duvida é sobre essa parte destacada do filtro select count(distinct mov.numero_venda) qtd ,sum(gar.saldo_devedor) total_saldo ,loj.unidade_servico from crd.loja loj ,crd.garantia gar ,crd.cliente cli ,crd.movimento mov where loj.regional LIKE DECODE(p_regional, '0', '%','%' || p_regional || '%') and loj.filial LIKE DECODE(p_filial, '0', '%','%' || p_filial || '%') and loj.escritorio = p_escritorio and loj.grupo = p_cliente and loj.regional 'T0' and loj.filial 'T0' and loj.identificacao = '1' and loj.empresa = cli.empresa_origem and cli.cliente = gar.cliente and cli.empresa = gar.empresa and gar.flg_garantia = 'P' and gar.dt_naoconfirmacao is not null and (((gar.dt_confirmacao_documento is not null) and trunc(gar.dt_confirmacao_documento) = p_primeiro_dia) or ((gar.dt_confirmacao_documento is null) and trunc(gar.dt_vencimento) = p_primeiro_dia)) and (((gar.dt_confirmacao_documento is not null) and trunc(gar.dt_confirmacao_documento) = p_ultimo_dia) or ((gar.dt_confirmacao_documento is null) and trunc(gar.dt_vencimento) = p_ultimo_dia)) and gar.numero_venda = mov.numero_venda and mov.operacao = '01' and mov.produto LIKE DECODE(p_produto, '0', '%','%' || p_produto || '%') and mov.loja_empresa = loj.empresa and mov.loja_central = loj.central and mov.loja_loja = loj.loja group by loj.unidade_servico order by loj.unidade_servico Elcio Francisco De: J. Laurindo Chiappa jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 23 de Julho de 2013 15:40 Assunto: [oracle_br] Re: USANDO 'OR' NO FILTRO Bom, primeiro eu ** TENHO ** que dizer que alguém que diz, point-blank e generalizando, que X deixa lento, SEM dizer o porque, SEm testes/provas/caso repetível, para mim está usando regras de dedão for a de contexto, está é ESPALHANDO MITOS, falando abobrinha, okdoc ?? É algo semelhante aos tantos outros mitos de performance, tipo EXISTS é melhor/pior que IN - afirmações extraordinárias exigem provas extraordinárias Pra mim afirmação sem prova é a indicação CLARA que o sujeito é um dba, entre aspas e minúsculas totais Isso posto, a sua resposta - se por qquer motivo vc não quiser usar o NULL, sem analisar muito, eu ACHO que com : and (loj.fim_atividade is null or gar.dt_vencimento loj.fim_atividade) vc quer que se loj.fim_atividade for null NADA SEJA COMPARADO (o mesmo efeito que vc fazer uma comparação sempre verdadeira), e que quando loj.fim_atividade NÃO for null aí sim a comparação deve ser feita com gar.dt_vencimento loj.fim_atividade Sabendo (como já comentado em outra thread recentemente) que uma das possibilidades ao se lidar com NULL é o NVL, poderíamos usar : and gar.dt_vencimento nvl(loj.fim_atividade, to_date('31/12/', 'dd/mm/') ) ok ? A linha acima é praticamente a tradução do que eu disse em português : SE fim_atividade for null o valor retornado pelo NVL é um valor que necessariamente é maior que dt_vencimento, portanto sempre sendo verdadeira, E SE fim_atividade for não-nulo, aí a comparação é dt_vencimento loj.fim_atividade , como desejado, acho eu []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Elcio Francisco elciofrancisco@... escreveu Pessoal, os dba´s sempre fala que no filtro quando tem a clausula OR deixa lento. Nesse caso testo se data
[oracle_br] Re: USANDO 'OR' NO FILTRO
Sem uma análise mais detalhada (que levaria mais que os poucos minutos que dedico a uma resposta), eu Acho que para substituir os OR no teu caso é usar a mesma lógica que mostrei na resposta anterior, ie : ao invés de ter ORs comparando se a dada coluna é NULL ou não, via NVL transforme a coluna de NULL para um valor apropriado... DECODE pode ser uma opção, também... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Elcio Francisco elciofrancisco@... escreveu Eu entendo amigo Chiappa te agradeço por sempre esta nos ajudando, o que você diz e te agradeço mas minha duvida é sobre essa parte destacada do filtro select count(distinct mov.numero_venda) qtd ,sum(gar.saldo_devedor) total_saldo ,loj.unidade_servico from crd.loja loj ,crd.garantia gar ,crd.cliente cli ,crd.movimento mov where loj.regional LIKE DECODE(p_regional, '0', '%','%' || p_regional || '%') and loj.filial LIKE DECODE(p_filial, '0', '%','%' || p_filial || '%') and loj.escritorio = p_escritorio and loj.grupo = p_cliente and loj.regional 'T0' and loj.filial 'T0' and loj.identificacao = '1' and loj.empresa = cli.empresa_origem and cli.cliente = gar.cliente and cli.empresa = gar.empresa and gar.flg_garantia = 'P' and gar.dt_naoconfirmacao is not null and (((gar.dt_confirmacao_documento is not null) and trunc(gar.dt_confirmacao_documento) = p_primeiro_dia) or ((gar.dt_confirmacao_documento is null) and trunc(gar.dt_vencimento) = p_primeiro_dia)) and (((gar.dt_confirmacao_documento is not null) and trunc(gar.dt_confirmacao_documento) = p_ultimo_dia) or ((gar.dt_confirmacao_documento is null) and trunc(gar.dt_vencimento) = p_ultimo_dia)) and gar.numero_venda = mov.numero_venda and mov.operacao = '01' and mov.produto LIKE DECODE(p_produto, '0', '%','%' || p_produto || '%') and mov.loja_empresa = loj.empresa and mov.loja_central = loj.central and mov.loja_loja = loj.loja group by loj.unidade_servico order by loj.unidade_servico Elcio Francisco De: J. Laurindo Chiappa jlchiappa@... Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 23 de Julho de 2013 15:40 Assunto: [oracle_br] Re: USANDO 'OR' NO FILTRO Bom, primeiro eu ** TENHO ** que dizer que alguém que diz, point-blank e generalizando, que X deixa lento, SEM dizer o porque, SEm testes/provas/caso repetível, para mim está usando regras de dedão for a de contexto, está é ESPALHANDO MITOS, falando abobrinha, okdoc ?? É algo semelhante aos tantos outros mitos de performance, tipo EXISTS é melhor/pior que IN - afirmações extraordinárias exigem provas extraordinárias Pra mim afirmação sem prova é a indicação CLARA que o sujeito é um dba, entre aspas e minúsculas totais Isso posto, a sua resposta - se por qquer motivo vc não quiser usar o NULL, sem analisar muito, eu ACHO que com : and (loj.fim_atividade is null or gar.dt_vencimento loj.fim_atividade) vc quer que se loj.fim_atividade for null NADA SEJA COMPARADO (o mesmo efeito que vc fazer uma comparação sempre verdadeira), e que quando loj.fim_atividade NÃO for null aí sim a comparação deve ser feita com gar.dt_vencimento loj.fim_atividade Sabendo (como já comentado em outra thread recentemente) que uma das possibilidades ao se lidar com NULL é o NVL, poderíamos usar : and gar.dt_vencimento nvl(loj.fim_atividade, to_date('31/12/', 'dd/mm/') )
Re: [oracle_br] Re: USANDO 'OR' NO FILTRO
Chiappa, O item do EXISTS ser melhor ou pior do que o IN não é mito! Existe uma regra para usar um ou outro (que em alguns casos pode melhorar o plano de execução), que está documentada no Oracle Performance Tuning Guide, veja: http://docs.oracle.com/cd/B19306_01/server.102/b14211/sql_1016.htm Elcio, Algumas dicas gerais, para melhorar performance, evite o uso de OR, comparações com NULL e funções nas instruções SQL. Se não for possível evitá-las existem algumas formas de contornar a má performance que isso tudo iria gerar, mas tudo isso não é muito simples e exige muitos conhecimentos prévios que não dá para explicar aqui (eu ensino em treinamentos SQL Tuning). []s Fábio Prado http://www.fabioprado.net Em 23 de julho de 2013 15:40, J. Laurindo Chiappa jlchia...@yahoo.com.brescreveu: ** Bom, primeiro eu ** TENHO ** que dizer que alguém que diz, point-blank e generalizando, que X deixa lento, SEM dizer o porque, SEm testes/provas/caso repetível, para mim está usando regras de dedão for a de contexto, está é ESPALHANDO MITOS, falando abobrinha, okdoc ?? É algo semelhante aos tantos outros mitos de performance, tipo EXISTS é melhor/pior que IN - afirmações extraordinárias exigem provas extraordinárias Pra mim afirmação sem prova é a indicação CLARA que o sujeito é um dba, entre aspas e minúsculas totais Isso posto, a sua resposta - se por qquer motivo vc não quiser usar o NULL, sem analisar muito, eu ACHO que com : and (loj.fim_atividade is null or gar.dt_vencimento loj.fim_atividade) vc quer que se loj.fim_atividade for null NADA SEJA COMPARADO (o mesmo efeito que vc fazer uma comparação sempre verdadeira), e que quando loj.fim_atividade NÃO for null aí sim a comparação deve ser feita com gar.dt_vencimento loj.fim_atividade Sabendo (como já comentado em outra thread recentemente) que uma das possibilidades ao se lidar com NULL é o NVL, poderíamos usar : and gar.dt_vencimento nvl(loj.fim_atividade, to_date('31/12/', 'dd/mm/') ) ok ? A linha acima é praticamente a tradução do que eu disse em português : SE fim_atividade for null o valor retornado pelo NVL é um valor que necessariamente é maior que dt_vencimento, portanto sempre sendo verdadeira, E SE fim_atividade for não-nulo, aí a comparação é dt_vencimento loj.fim_atividade , como desejado, acho eu []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Elcio Francisco elciofrancisco@... escreveu Pessoal, os dba´s sempre fala que no filtro quando tem a clausula OR deixa lento. Nesse caso testo se data dt_confirmacao_documento for null ele busca pela data gar.dt_vencimento como fazer isso sem usar o OR Muito obrigado select count(distinct mov.numero_venda) qtd ,sum(gar.saldo_devedor) total_saldo ,loj.unidade_servico from crd.empresa loj ,crd.cliente cli ,crd.vendas gar ,crd.pedido mov where loj.regional LIKE DECODE(p_regional, '0', '%','%' || p_regional || '%') and loj.filial LIKE DECODE(p_filial, '0', '%','%' || p_filial || '%') and loj.escritorio = p_escritorio and loj.grupo = p_cliente and loj.regional 'T0' and loj.filial'T0' and loj.identificacao = '1' and loj.empresa = cli.empresa_origem and cli.cliente = gar.cliente and cli.empresa = gar.empresa and gar.flg_garantia = 'P' and (((dt_confirmacao_documento is not null) and trunc(dt_confirmacao_documento) = p_primeiro_dia) or ((dt_confirmacao_documento is null) and trunc(gar.dt_vencimento) = p_primeiro_dia)) and (((dt_confirmacao_documento is not null) and trunc(dt_confirmacao_documento) = p_ultimo_dia) or ((dt_confirmacao_documento is null) and trunc(gar.dt_vencimento) = p_ultimo_dia)) and gar.numero_venda = mov.numero_venda and mov.operacao = '01' and mov.produto LIKE DECODE(p_produto, '0', '%','%' || p_produto || '%') and mov.loja_empresa = loj.empresa
RE: [oracle_br] Atrasar um processo por 64 segundos.
Obrigado pessoal, Foi necessário dar um grant, segue caso alguém precise dele.grant execute on sys.DBMS_LOCK to [usuario]; Carlos SilvaSkype - carlos-csilva To: oracle_br@yahoogrupos.com.br From: fbifa...@gmail.com Date: Tue, 23 Jul 2013 15:34:56 -0300 Subject: Re: [oracle_br] Atrasar um processo por 64 segundos. Carlos, vc tem que usar a procedure SLEEP da package DBMS_LOCK. Exemplo: BEGIN DBMS_LOCK.SLEEP (64); END; Se precisar usar dentro de uma instrução SQL, coloque o código que chama a procedure dentro de uma função e chame essa função dentro da instrução SQL. Mais informações: http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_lock.htm#i997212 []s Fábio Prado www.fabioprado.net Em 23 de julho de 2013 15:27, Carlos Silva carlos-csi...@hotmail.comescreveu: ** Boa tarde, pessoal! Preciso fazer uma script que segure um processo por 64 segundos. Alguém poderia me auxiliar de como criar? At.: Carlos SilvaSkype - carlos-csilva [As partes desta mensagem que não continham texto foram removidas] -- Fábio Prado www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle [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/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ Links do Yahoo! Grupos [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: USANDO 'OR' NO FILTRO
Estou super enferrujado em SQL, parei de trabalhar com Oracle, mas... Confiram se não dá pra trocar isso: (((gar.dt_confirmacao_documento is not null) and trunc(gar.dt_confirmacao_documento) = p_primeiro_dia) or ((gar.dt_confirmacao_documento is null) and trunc(gar.dt_vencimento) = p_primeiro_dia)) Por isso: DECODE(gar.dt_confirmacao_documento, null, trunc(gar.dt_vencimento), trunc(gar.dt_confirmacao_documento)) = p_primeiro_dia 2013/7/23 Elcio Francisco elciofranci...@yahoo.com.br ** Eu entendo amigo Chiappa te agradeço por sempre esta nos ajudando, o que você diz e te agradeço mas minha duvida é sobre essa parte destacada do filtro select count(distinct mov.numero_venda) qtd ,sum(gar.saldo_devedor) total_saldo ,loj.unidade_servico from crd.loja loj ,crd.garantia gar ,crd.cliente cli ,crd.movimento mov where loj.regional LIKE DECODE(p_regional, '0', '%','%' || p_regional || '%') and loj.filial LIKE DECODE(p_filial, '0', '%','%' || p_filial || '%') and loj.escritorio= p_escritorio and loj.grupo = p_cliente and loj.regional 'T0' and loj.filial 'T0' and loj.identificacao = '1' and loj.empresa = cli.empresa_origem and cli.cliente = gar.cliente and cli.empresa = gar.empresa and gar.flg_garantia = 'P' and gar.dt_naoconfirmacao is not null and (((gar.dt_confirmacao_documento is not null) and trunc(gar.dt_confirmacao_documento) = p_primeiro_dia) or ((gar.dt_confirmacao_documento is null) and trunc(gar.dt_vencimento) = p_primeiro_dia)) and (((gar.dt_confirmacao_documento is not null) and trunc(gar.dt_confirmacao_documento) = p_ultimo_dia) or ((gar.dt_confirmacao_documento is null) and trunc(gar.dt_vencimento) = p_ultimo_dia)) and gar.numero_venda = mov.numero_venda and mov.operacao = '01' and mov.produto LIKE DECODE(p_produto, '0', '%','%' || p_produto || '%') and mov.loja_empresa = loj.empresa and mov.loja_central = loj.central and mov.loja_loja = loj.loja group by loj.unidade_servico order by loj.unidade_servico Elcio Francisco De: J. Laurindo Chiappa jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 23 de Julho de 2013 15:40 Assunto: [oracle_br] Re: USANDO 'OR' NO FILTRO Bom, primeiro eu ** TENHO ** que dizer que alguém que diz, point-blank e generalizando, que X deixa lento, SEM dizer o porque, SEm testes/provas/caso repetível, para mim está usando regras de dedão for a de contexto, está é ESPALHANDO MITOS, falando abobrinha, okdoc ?? É algo semelhante aos tantos outros mitos de performance, tipo EXISTS é melhor/pior que IN - afirmações extraordinárias exigem provas extraordinárias Pra mim afirmação sem prova é a indicação CLARA que o sujeito é um dba, entre aspas e minúsculas totais Isso posto, a sua resposta - se por qquer motivo vc não quiser usar o NULL, sem analisar muito, eu ACHO que com : and (loj.fim_atividade is null or gar.dt_vencimento loj.fim_atividade) vc quer que se loj.fim_atividade for null NADA SEJA COMPARADO (o mesmo efeito que vc fazer uma comparação sempre verdadeira), e que quando loj.fim_atividade NÃO for null aí sim a comparação deve ser feita com gar.dt_vencimento loj.fim_atividade Sabendo (como já comentado em outra thread recentemente) que uma das possibilidades ao se lidar com NULL é o NVL, poderíamos usar : and gar.dt_vencimento nvl(loj.fim_atividade, to_date('31/12/', 'dd/mm/') ) ok ? A linha acima é praticamente a tradução do que eu disse em português : SE fim_atividade for null o valor retornado pelo NVL é um valor que necessariamente é maior que dt_vencimento, portanto sempre
[oracle_br] Re: USANDO 'OR' NO FILTRO
O mito, como eu disse, é a GENERALIZAÇÂO : afirmar que x é melhor que y SEM indicar especifidades, sem ter uma análise/prova, SEM se levar em conta que há ocasiões/situações em que x pode ser pior MAS há também situações em que x pode ser MUITO MELHOR, é sim folclore de DBAs : diversos especialistas Reconhecidos (http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:953229842074#1525158235153 é um exemplo) já fizeram a prova de que Há situações em que EXISTS pode ser nelhor mas há também situações em que ele pode ser pior O MITO, repito, é afirmar point-blank algo, SEM prova/referência/demonstração... Isso vale também para o caso do colega : DE FORMA ALGUMA se pode afirmar que SEMPRE o OR causa piora ou melhora na performance, quem manda uma firmação dessa generalizada E sem demonstração/restrição sorry, mas só pode estar espalhando uma historinha que ouviu , algo que ele ACHA que é assim, uma regrinha geral que ele não sabe como/se/aonde funciona ou se funciona, , ou seja, um mito... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Fabio Prado fbifabio@... escreveu Chiappa, O item do EXISTS ser melhor ou pior do que o IN não é mito! Existe uma regra para usar um ou outro (que em alguns casos pode melhorar o plano de execução), que está documentada no Oracle Performance Tuning Guide, veja: http://docs.oracle.com/cd/B19306_01/server.102/b14211/sql_1016.htm Elcio, Algumas dicas gerais, para melhorar performance, evite o uso de OR, comparações com NULL e funções nas instruções SQL. Se não for possível evitá-las existem algumas formas de contornar a má performance que isso tudo iria gerar, mas tudo isso não é muito simples e exige muitos conhecimentos prévios que não dá para explicar aqui (eu ensino em treinamentos SQL Tuning). []s Fábio Prado http://www.fabioprado.net Em 23 de julho de 2013 15:40, J. Laurindo Chiappa jlchiappa@...escreveu: ** Bom, primeiro eu ** TENHO ** que dizer que alguém que diz, point-blank e generalizando, que X deixa lento, SEM dizer o porque, SEm testes/provas/caso repetível, para mim está usando regras de dedão for a de contexto, está é ESPALHANDO MITOS, falando abobrinha, okdoc ?? É algo semelhante aos tantos outros mitos de performance, tipo EXISTS é melhor/pior que IN - afirmações extraordinárias exigem provas extraordinárias Pra mim afirmação sem prova é a indicação CLARA que o sujeito é um dba, entre aspas e minúsculas totais Isso posto, a sua resposta - se por qquer motivo vc não quiser usar o NULL, sem analisar muito, eu ACHO que com : and (loj.fim_atividade is null or gar.dt_vencimento loj.fim_atividade) vc quer que se loj.fim_atividade for null NADA SEJA COMPARADO (o mesmo efeito que vc fazer uma comparação sempre verdadeira), e que quando loj.fim_atividade NÃO for null aí sim a comparação deve ser feita com gar.dt_vencimento loj.fim_atividade Sabendo (como já comentado em outra thread recentemente) que uma das possibilidades ao se lidar com NULL é o NVL, poderíamos usar : and gar.dt_vencimento nvl(loj.fim_atividade, to_date('31/12/', 'dd/mm/') ) ok ? A linha acima é praticamente a tradução do que eu disse em português : SE fim_atividade for null o valor retornado pelo NVL é um valor que necessariamente é maior que dt_vencimento, portanto sempre sendo verdadeira, E SE fim_atividade for não-nulo, aí a comparação é dt_vencimento loj.fim_atividade , como desejado, acho eu []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Elcio Francisco elciofrancisco@ escreveu Pessoal, os dba´s sempre fala que no filtro quando tem a clausula OR deixa lento. Nesse caso testo se data dt_confirmacao_documento for null ele busca pela data gar.dt_vencimento como fazer isso sem usar o OR Muito obrigado select count(distinct mov.numero_venda) qtd ,sum(gar.saldo_devedor) total_saldo ,loj.unidade_servico from crd.empresa loj ,crd.cliente cli ,crd.vendas gar ,crd.pedido mov where loj.regional LIKE DECODE(p_regional, '0', '%','%' || p_regional || '%') and loj.filial LIKE DECODE(p_filial, '0', '%','%' || p_filial || '%') and loj.escritorio = p_escritorio and loj.grupo = p_cliente and loj.regional 'T0' and loj.filial'T0' and loj.identificacao = '1'
Re: [oracle_br] Atrasar um processo por 64 segundos.
Cuidado hein? Já vi essas procedure com sleep que seguram por x segundos causarem vários problemas de lock, justamente pelo tempo de espera! Apenas um aviso! :) Att,/Regards, Vitor Jr. Infraestrutura / Infrastructure Team Oracle 11g DBA Certified Professional - OCP Oracle Certified Expert, Oracle Real Application Clusters 11g and Grid Infrastructure Administrator - OCE Oracle Database 11g Performance Tuning Certified Expert - OCE Oracle Exadata 11g Certified Implementation Specialist Oracle Certified Associate, MySQL 5 mail, gtalk e msn: vitorj...@gmail.com http://certificacaobd.com.br/ skype: vjunior1981 Em 23 de julho de 2013 16:20, Carlos Silva carlos-csi...@hotmail.comescreveu: ** Obrigado pessoal, Foi necessário dar um grant, segue caso alguém precise dele.grant execute on sys.DBMS_LOCK to [usuario]; Carlos SilvaSkype - carlos-csilva To: oracle_br@yahoogrupos.com.br From: fbifa...@gmail.com Date: Tue, 23 Jul 2013 15:34:56 -0300 Subject: Re: [oracle_br] Atrasar um processo por 64 segundos. Carlos, vc tem que usar a procedure SLEEP da package DBMS_LOCK. Exemplo: BEGIN DBMS_LOCK.SLEEP (64); END; Se precisar usar dentro de uma instrução SQL, coloque o código que chama a procedure dentro de uma função e chame essa função dentro da instrução SQL. Mais informações: http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_lock.htm#i997212 []s Fábio Prado www.fabioprado.net Em 23 de julho de 2013 15:27, Carlos Silva carlos-csi...@hotmail.com escreveu: ** Boa tarde, pessoal! Preciso fazer uma script que segure um processo por 64 segundos. Alguém poderia me auxiliar de como criar? At.: Carlos SilvaSkype - carlos-csilva [As partes desta mensagem que não continham texto foram removidas] -- Fábio Prado www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle [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/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ -- Links do Yahoo! Grupos [As partes desta mensagem que não continham texto foram removidas] [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/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: oracle_br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [oracle_br] Re: USANDO 'OR' NO FILTRO
Perfeito Chiappa! Agora concordo com você! Tem muita coisa em Tuning que não tem regra absoluta. Os casos tem que ser analisados e testados. Eu mostro nos meus treinamentos de SQL Tuning que em certas situações utilizar o CASE para evitar múltiplas instruções com UNION ALL melhora a performance. Em outras eu faço o contrário e consigo melhorar também a performance, mudando um pouco o jeito de escrever a instrução SQL. Mostro várias situações parecidas com essa, através de teoria e prática! Existem muitas variantes que influenciam na performance, portanto, aviso ao pessoal que está iniciando estudos em tuning: *Não há RECEITA DE BOLO que serve para OTIMIZAR qq instrução SQL e nem para otimizar qualquer instância de BD*! Há muita coisa a ser estudada para entender quando e como fazer! []s Fábio Prado http://www.fabioprado.net Em 23 de julho de 2013 16:44, J. Laurindo Chiappa jlchia...@yahoo.com.brescreveu: ** O mito, como eu disse, é a GENERALIZAÇÂO : afirmar que x é melhor que y SEM indicar especifidades, sem ter uma análise/prova, SEM se levar em conta que há ocasiões/situações em que x pode ser pior MAS há também situações em que x pode ser MUITO MELHOR, é sim folclore de DBAs : diversos especialistas Reconhecidos ( http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:953229842074#1525158235153é um exemplo) já fizeram a prova de que Há situações em que EXISTS pode ser nelhor mas há também situações em que ele pode ser pior O MITO, repito, é afirmar point-blank algo, SEM prova/referência/demonstração... Isso vale também para o caso do colega : DE FORMA ALGUMA se pode afirmar que SEMPRE o OR causa piora ou melhora na performance, quem manda uma firmação dessa generalizada E sem demonstração/restrição sorry, mas só pode estar espalhando uma historinha que ouviu , algo que ele ACHA que é assim, uma regrinha geral que ele não sabe como/se/aonde funciona ou se funciona, , ou seja, um mito... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Fabio Prado fbifabio@... escreveu Chiappa, O item do EXISTS ser melhor ou pior do que o IN não é mito! Existe uma regra para usar um ou outro (que em alguns casos pode melhorar o plano de execução), que está documentada no Oracle Performance Tuning Guide, veja: http://docs.oracle.com/cd/B19306_01/server.102/b14211/sql_1016.htm Elcio, Algumas dicas gerais, para melhorar performance, evite o uso de OR, comparações com NULL e funções nas instruções SQL. Se não for possível evitá-las existem algumas formas de contornar a má performance que isso tudo iria gerar, mas tudo isso não é muito simples e exige muitos conhecimentos prévios que não dá para explicar aqui (eu ensino em treinamentos SQL Tuning). []s Fábio Prado http://www.fabioprado.net Em 23 de julho de 2013 15:40, J. Laurindo Chiappa jlchiappa@...escreveu: ** Bom, primeiro eu ** TENHO ** que dizer que alguém que diz, point-blank e generalizando, que X deixa lento, SEM dizer o porque, SEm testes/provas/caso repetível, para mim está usando regras de dedão for a de contexto, está é ESPALHANDO MITOS, falando abobrinha, okdoc ?? É algo semelhante aos tantos outros mitos de performance, tipo EXISTS é melhor/pior que IN - afirmações extraordinárias exigem provas extraordinárias Pra mim afirmação sem prova é a indicação CLARA que o sujeito é um dba, entre aspas e minúsculas totais Isso posto, a sua resposta - se por qquer motivo vc não quiser usar o NULL, sem analisar muito, eu ACHO que com : and (loj.fim_atividade is null or gar.dt_vencimento loj.fim_atividade) vc quer que se loj.fim_atividade for null NADA SEJA COMPARADO (o mesmo efeito que vc fazer uma comparação sempre verdadeira), e que quando loj.fim_atividade NÃO for null aí sim a comparação deve ser feita com gar.dt_vencimento loj.fim_atividade Sabendo (como já comentado em outra thread recentemente) que uma das possibilidades ao se lidar com NULL é o NVL, poderíamos usar : and gar.dt_vencimento nvl(loj.fim_atividade, to_date('31/12/', 'dd/mm/') ) ok ? A linha acima é praticamente a tradução do que eu disse em português : SE fim_atividade for null o valor retornado pelo NVL é um valor que necessariamente é maior que dt_vencimento, portanto sempre sendo verdadeira, E SE fim_atividade for não-nulo, aí a comparação é dt_vencimento loj.fim_atividade , como desejado, acho eu []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Elcio Francisco elciofrancisco@ escreveu Pessoal, os dba´s sempre fala que no filtro quando tem a clausula OR deixa lento. Nesse caso testo se data dt_confirmacao_documento for null ele busca pela data gar.dt_vencimento como fazer isso sem usar o OR Muito obrigado select count(distinct mov.numero_venda) qtd ,sum(gar.saldo_devedor) total_saldo
[oracle_br] VídeoAulas de Oracle
O blog do DBA Oracle, Fernando Silva tem um link sobre video aulas de Oracle: Vale a pena conferir: www.fsilvadba.blogspot.com.br Abraços
Re: [oracle_br] Valor Oracle Exadata
Miltão, muito obrigado pelas dicas! Realmente acho que não vamos conseguir comprar um EXADATA por caso do alto custo e a não possibilidade de desmembramento de certos itens e softwares (verifiquei isso hoje com o Rodrigo Almeida), que poderiam baratear o custo. Aqui por exemplo, não precisamos de licenciamento de Partitioning e o Storage embutido do EXADATA. O ideal para nós vai ser comprar um novo servidor Intel e adquirir as licenças adicionais à parte! []s Fábio Prado http://www.fabioprado.net Em 22 de julho de 2013 20:02, Milton Bastos Henriquis Jr. miltonbas...@gmail.com escreveu: Fala Fabião! Cara, trabalhei numa empresa que comprou um Exalogic - nem posso citar valores pois tem um funcionário de lá que participa aqui dessa lista né Jorjão?? kkk Mas nem caberia comparação também, pois foi um valor muito mais alto do que vc citou, até pelo fato de não ser apenas um Exadata, mas um Exalogic (não lembro de Half ou Full). Depois disso trabalhei também numa parceira Oracle, com pré-vendas, e quase vendemos um Exadata pra uma empresa do ramo alimentício do interior do Paraná, A venda só não foi concretizada devido a saída inesperada do gerente de TI que queria fazer a compra. O que posso te dizer é que os preços realmente variam muito - a margem é grande, pois o valor do produto inclui toda a questão de licenciamento. Se fôssemos falar só de hardware essa variação não aconteceria tanto - afinal, todo hardware tem seu custo para ser produzido e comercializado, e em cima deste custo é colocado o lucro. Já a questão de licenciamento abre uma brecha pra Oracle trabalhar com preços. Isso envolve MUITA coisa... a Oracle tenta de tudo para vender máquinas pra setores governamentais, por exemplo. E quando é Governo, tem pregão eletrônico. Leilão! E em leilão a Oracle vai abaixando o preço até ganhar... a margem é grande. Dar 3 milhões de desconto pra eles é normal, pois é importante eles não perderem negócio. A grande sacada é: não mostre que vc QUER um Exadata. Apresente alternativas pro comercial da Oracle. Tem que ter concorrência. Só assim abrem as pernas. Fale que vc tá avaliando Teradata e Netezza também. Tem que ser duro na negociação! 2013/7/22 Fabio Prado fbifa...@gmail.com ** Pessoal, Existe a possibilidade (dependendo do custo) de adquirirmos um Exadata *Quarter Rack* ou *Eighth Rack* na empresa em que eu trabalho e eu por este motivo eu gostaria de saber* se alguém aqui no grupo já comprou algum destes servidores e qual valor pagou*. Conversando com alunos vejo que a Oracle negocia o valor destes servidores praticamente de acordo com o tamanho da empresa, quantidade de servidores que ela poderá adquirir e muitas outras variantes. Há alguns anos, uma empresa parceira da Oracle ofereceu um Quarter Rack para a empresa em que trabalho por aprox. 2 milhões de reais, enquanto que, conversando com um aluno, na empresa em que ele prestava serviços, foram adquiridos 8 servidores* Half Rack* (bem melhor que *Quarter Rack*) por menos de 1 milhão cada. Grato! -- Fábio Prado www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle [As partes desta mensagem que não continham texto foram removidas] [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/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ Links do Yahoo! Grupos -- Fábio Prado www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: Valor Oracle Exadata
Chiappa, obrigado pelas dicas! Em 22 de julho de 2013 20:51, J. Laurindo Chiappa jlchia...@yahoo.com.brescreveu: ** Sim, é uma verdade verdadeiríssima que os preços básicos em http://www.oracle.com/us/corporate/pricing/exadata-pricelist-070598.pdfsão só um guia geral - Dependendo do nível de relacionamento da Empresa adquirente com a Oracle, isso pode variar muito, e quando se fala relacionamento não é só quantidade de servidores, mas também qtdades e tipos de produtos Oracle presentes e/ou a adquirir, tem a ver se a empresa é Parceira Oracle ou não, se oferece alguma solução Oracle-based ou não E é claro, como é um produto Muito especializado, performante e caro, não é qualquer empresa de pequeno porte que se qualifica, então variáveis como negociação feita pela MATRIZ da Empresa (e não pela filial aqui do Brasil, que via de regra tem menos poder na organização) e possibilidade de adotar a tecnologia na organização como um todo e não só num local/filial, são SIM extremamente importantes - fica a SUGESTÃO para os colegas que opinarem, que na medida do possível DETALHEM além das quantidades o relacionamento que a Empresa deles tem com a Oracle, para podermos colocar os preços no contexto adequado No meu caso, atuo numa Consultoria de grande porte, que possui parceria com a Oracle (que também oferece serviços Oracle-based para seus clientes, além de usar internamente a tecnologia Oracle para si), com vários escritórios mundiais, e no total a organização deve ter coisa de uns 100 databases Oracle próprios e/ou de clientes mas alocados internamente, além de também frequentemente comprar e/ou indicar produtos Oracle para os clientes, e nessas condições mais ou menos sei que o half-rack Exadata que está sendo planejado vai sair por coisa por volta de 300 mil obamas, afora custos de Suporte... Realmente, um quarter-rack por por dois milhões tá bem longe - OK que talvez vc não tenha um nível de relacionamento semelhante, mas eu diria para vc levantar os detalhes de parceria/relacionamento que vcs tenham com a Oracle , REPASSAR a lista oficial que indiquei e as msgs que receber neste tópico para o teu comprador, enfim, jogar DURO na negociação, mostrar que vc não é um sem noção que aceita qualquer valor porque realmente nesse nível a negociação não está boa, não : INCLUSIVE, imagino que esse valor tenha sido a primeira oferta, que a gente ** NUNCA ** considera - é mais ou menos como quando vc vai comprar um carro, um imóvel ou alguma coisa de grande valor e que a pessoa ganha com comissão na venda, a primeira oferta é só para ver se cola... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Fabio Prado fbifabio@... escreveu Pessoal, Existe a possibilidade (dependendo do custo) de adquirirmos um Exadata *Quarter Rack* ou *Eighth Rack* na empresa em que eu trabalho e eu por este motivo eu gostaria de saber* se alguém aqui no grupo já comprou algum destes servidores e qual valor pagou*. Conversando com alunos vejo que a Oracle negocia o valor destes servidores praticamente de acordo com o tamanho da empresa, quantidade de servidores que ela poderá adquirir e muitas outras variantes. Há alguns anos, uma empresa parceira da Oracle ofereceu um Quarter Rack para a empresa em que trabalho por aprox. 2 milhões de reais, enquanto que, conversando com um aluno, na empresa em que ele prestava serviços, foram adquiridos 8 servidores* Half Rack* (bem melhor que *Quarter Rack*) por menos de 1 milhão cada. Grato! -- Fábio Prado www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle [As partes desta mensagem que não continham texto foram removidas] -- Fábio Prado www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle [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/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: oracle_br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos:
Re: [oracle_br] Re: Valor Oracle Exadata
Me dá um exemplo ( real ) de uma aplicacao que demanda um hardware para servidor de banco de dados tão imenso assim ? Eu sei que vcs contam nos dedos quem utiliza Certamente não qualquer site de ecommerce e nem qualquer erp rodando por ai... Pra chegar a esse nivel de solução, todas as outras instancias existentes no mercado, precisam simplesmente não servir. Correto? []s angelo [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Valor Oracle Exadata
Entao, conforme o miltao, comentou hehehehhe temos um brinquedo desse. O valor passa de 1 milhao, isso que posso te dizer (e esse valor é publico, esta no site da Oracle) mais cara, o valor do Exadata ou do Exalogic é o menor dos seus problemas... chega a ser irrelevante (se pensar como uma empresa grande). A maior questao que envolve isso é o planejamento a medio e longo prazo (que ninguem faz, hehehehehe), ou seja, voce nao vai ter um contrato e sim um pacto, pois, renovar licenca, manutecao, datacenter para colocar esse cara, suporte da oracle, etc... tipo, voce vai comprar uma ferrari e levar no seu joao pra arrumar? Nem se compara a administrar um Oracle normal... a parada é louca. Assim, o Exadata é fera mesmo cara, temos um Quarter Rack... a maquina sobra da show mesmo, o problema do Quarter Rack é em relacao a espaco em disco, creio que ele é mau dimensionado, deveria ter mais disco no default... fora isso, nao tem o que dizer, o funcionamento é animal e o que mata a pau sao as features de partitioning, compress HCC, etc... (minha opniao). Tem que ver que a Oracle agora tem outras modalidades ... uma parada chamada as a service... creio que seja isso. Voce paga por mes... cara... assim, comprar isso é bem mais complicado do que parece... Ai pra ajudar ainda tem o supercluster Boa Sorte Em 23 de julho de 2013 17:56, Fabio Prado fbifa...@gmail.com escreveu: ** Miltão, muito obrigado pelas dicas! Realmente acho que não vamos conseguir comprar um EXADATA por caso do alto custo e a não possibilidade de desmembramento de certos itens e softwares (verifiquei isso hoje com o Rodrigo Almeida), que poderiam baratear o custo. Aqui por exemplo, não precisamos de licenciamento de Partitioning e o Storage embutido do EXADATA. O ideal para nós vai ser comprar um novo servidor Intel e adquirir as licenças adicionais à parte! []s Fábio Prado http://www.fabioprado.net Em 22 de julho de 2013 20:02, Milton Bastos Henriquis Jr. miltonbas...@gmail.com escreveu: Fala Fabião! Cara, trabalhei numa empresa que comprou um Exalogic - nem posso citar valores pois tem um funcionário de lá que participa aqui dessa lista né Jorjão?? kkk Mas nem caberia comparação também, pois foi um valor muito mais alto do que vc citou, até pelo fato de não ser apenas um Exadata, mas um Exalogic (não lembro de Half ou Full). Depois disso trabalhei também numa parceira Oracle, com pré-vendas, e quase vendemos um Exadata pra uma empresa do ramo alimentício do interior do Paraná, A venda só não foi concretizada devido a saída inesperada do gerente de TI que queria fazer a compra. O que posso te dizer é que os preços realmente variam muito - a margem é grande, pois o valor do produto inclui toda a questão de licenciamento. Se fôssemos falar só de hardware essa variação não aconteceria tanto - afinal, todo hardware tem seu custo para ser produzido e comercializado, e em cima deste custo é colocado o lucro. Já a questão de licenciamento abre uma brecha pra Oracle trabalhar com preços. Isso envolve MUITA coisa... a Oracle tenta de tudo para vender máquinas pra setores governamentais, por exemplo. E quando é Governo, tem pregão eletrônico. Leilão! E em leilão a Oracle vai abaixando o preço até ganhar... a margem é grande. Dar 3 milhões de desconto pra eles é normal, pois é importante eles não perderem negócio. A grande sacada é: não mostre que vc QUER um Exadata. Apresente alternativas pro comercial da Oracle. Tem que ter concorrência. Só assim abrem as pernas. Fale que vc tá avaliando Teradata e Netezza também. Tem que ser duro na negociação! 2013/7/22 Fabio Prado fbifa...@gmail.com ** Pessoal, Existe a possibilidade (dependendo do custo) de adquirirmos um Exadata *Quarter Rack* ou *Eighth Rack* na empresa em que eu trabalho e eu por este motivo eu gostaria de saber* se alguém aqui no grupo já comprou algum destes servidores e qual valor pagou*. Conversando com alunos vejo que a Oracle negocia o valor destes servidores praticamente de acordo com o tamanho da empresa, quantidade de servidores que ela poderá adquirir e muitas outras variantes. Há alguns anos, uma empresa parceira da Oracle ofereceu um Quarter Rack para a empresa em que trabalho por aprox. 2 milhões de reais, enquanto que, conversando com um aluno, na empresa em que ele prestava serviços, foram adquiridos 8 servidores* Half Rack* (bem melhor que *Quarter Rack*) por menos de 1 milhão cada. Grato! -- Fábio Prado www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle [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: Valor Oracle Exadata
Na verdade, Angelo, quando falamos em Exadata estamos num nível de exigência mais alto : não é só uma questão de tamanho dos dados, mas de capacidade de processamento necessária Por exemplo : há alguns anos trabalhei no setor de co-billing em numa empresa de telefonia, e o grosso do lucro desse setor da Empresa era a cobrança de uso das linhas por parte das outras operadoras, informação essa que vinha em estado bruto de máquinas automáticas instaladas nas centrais, num volume de alguns terabytes mensais (que há uns tantos anos eram um volume respeitável), e que por questões de negócio necessariamente tinha de ser processada na íntegra, com montes de table scans e montes de I/Os - se já existisse Exadata na ocasião, com Absoluta certeza as features de smart scan seriam uma mão na roda, por si só já valeriam o preço Então é isso - independente do volume, o Exadata se justifica se alguma de suas features encaixam na necessidade do cliente E sempre há, também, a possibilidade de CONSOLIDAÇÃO de databases - no caso da Empresa aonde eu trabalho atualmente a idéia do Exadata é justamente essa : não só a Enorme capacidade do hardware e do software do Exadata certamente dão e sobram para a necessidade, MAS também apenas ele (ao menos até o 11g, não vi ainda no 12c) possui features como o I/O resource manager, que permite o I/O Throttle, de modo que vc ABAIXE/controle a prioridade de I/O de diferentes consumidores dentro do mesmo database E que fique CLARO : a esmagadora maioria dessas features no Exadata decorre da integração entre software e hardware (ie, o software sabe EXATAMENTE qual hardware está conectado a ele, em detalhes, então coisas como acessar diretamente discos aonde a informação está é possível), coisa que vc ABSOLUTAMENTE NÃO CONSEGUE comprando um grupo de servidores separados, ENTÃo pode muito bem ser que vc não consiga a mesma performance, AINDA QUE o poder de CPU , a banda de rede e o I/O dos servidores não-exa sejam similares (ou mesmo um pouco superiores) ao exadara, ok ? É essa Integração entre hardware e software que deve ser julgada/considerada com cuidado ao se avaliar a possibilidade de um Exadata, e é ISSO que deve ser levado em conta ao se comparar com outras soluções do mercado, principalmente... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, angelo angelolistas@... escreveu Me dá um exemplo ( real ) de uma aplicacao que demanda um hardware para servidor de banco de dados tão imenso assim ? Eu sei que vcs contam nos dedos quem utiliza Certamente não qualquer site de ecommerce e nem qualquer erp rodando por ai... Pra chegar a esse nivel de solução, todas as outras instancias existentes no mercado, precisam simplesmente não servir. Correto? []s angelo [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] RMAN - começando
Boas. Estou começando testes para implementação do RMAN aqui na empresa, ainda de uma maneira básica. Na minha crontab, eu tenho um agendamento que chama um script que contém o seguinte comando dentro: backup database plus archivelog; Esse agendamento não está dando certo, executei o comando na mão e apresentava erro de não ter encontrado os ARCHIVELOGs. Executei o comando crosscheck archivelog all, após isso o backup foi efetuado. Os meus archives ficam em um disco separado, e quando efetuo backup faço a limpeza dos archives backupeados, acredito que o erro ocorre por conta desse procedimento. Minha dúvida é a seguinte, eu tenho que executar o crosscheck antes do meu script de backup, ou a maneira na qual estou fazendo não está correto? Grato. [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] RMAN - começando
Bom dia Márcio, tudo bem? Márcio.. RMAN é da hora, aconselho você estudar um pouco mais a fundo.. segue algumas referencias... RMAN guia referencia de bolso Oracle RMAN 11g Backup and Recovery - Robert G. Freeman and Matthew Hart RMAN Recipes for Oracle Database 11g - A Problem-Solution Approach O'Reilly - Oracle RMAN Pocket segue o nome de algumas literaturas para estudo, acho que todos estes livros você encontra na net.. Ou no site de amazon se quiser comprar os livros. O do Robert G. Freeman and Matthew Hart vale a pena..a Abraço! De: Grupos marcio_...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Segunda-feira, 22 de Julho de 2013 8:30 Assunto: [oracle_br] RMAN - começando Boas. Estou começando testes para implementação do RMAN aqui na empresa, ainda de uma maneira básica. Na minha crontab, eu tenho um agendamento que chama um script que contém o seguinte comando dentro: “backup database plus archivelog;” Esse agendamento não está dando certo, executei o comando na mão e apresentava erro de não ter encontrado os ARCHIVELOGs. Executei o comando “crosscheck archivelog all”, após isso o backup foi efetuado. Os meus archives ficam em um disco separado, e quando efetuo backup faço a limpeza dos archives backupeados, acredito que o erro ocorre por conta desse procedimento. Minha dúvida é a seguinte, eu tenho que executar o crosscheck antes do meu script de backup, ou a maneira na qual estou fazendo não está correto? Grato. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Novidades 12c e Tuning
Bom dia pessoal! Pra começar bem a semana, 2 novos artigos que acabaram de sair do forno... [Oracle] Performance Tuning Parte III Tuning de redehttp://certificacaobd.com.br/2013/07/22/oracle-performance-tuning-parte-iii-tuning-de-rede/ http://certificacaobd.com.br/2013/07/22/oracle-performance-tuning-parte-iii-tuning-de-rede/ Oracle Database 12c New Features 1.Renomeação e realocação de datafiles ativos de maneira onlinehttp://certificacaobd.com.br/2013/07/19/oracle-database-12c-new-features-1-renomeacao-e-realocacao-de-datafiles-ativos-de-maneira-online/ http://certificacaobd.com.br/2013/07/19/oracle-database-12c-new-features-1-renomeacao-e-realocacao-de-datafiles-ativos-de-maneira-online/ [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/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: oracle_br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [oracle_br] Re: Valor Oracle Exadata
Angelo, quem conhece, e quem estudou e tirou a certificação sabe que o que diferencia não é o hardware... e sim a tecnologia como smart scan, HCC e tantas outras presentes apenas no exadata. E são inúmeras empresas que necessitam desse tipo de velocidade no processamento. O fato é que o exadata é muito mais indicado para ambientes DW do que OLTP. Ou seja, se a empresa precisa processar DW mais rápido do que processa hoje em dia, ela vai acabar indo de exadata... hehehe Além disso, tem toda a questão de ser meio que uma 'caixa preta'. É tudo 'acertadinho' pela oracle, a nível de configurações entre servidor-storage-rede, entre tantas outras vantagens! :) [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Valor Oracle Exadata
Fabio, o ODA não seria uma alterantiva ao exadata para esse ambiente que mencionou? Abraço! :) Att,/Regards, Vitor Jr. Infraestrutura / Infrastructure Team Oracle 11g DBA Certified Professional - OCP Oracle Certified Expert, Oracle Real Application Clusters 11g and Grid Infrastructure Administrator - OCE Oracle Database 11g Performance Tuning Certified Expert - OCE Oracle Exadata 11g Certified Implementation Specialist Oracle Certified Associate, MySQL 5 mail, gtalk e msn: vitorj...@gmail.com http://certificacaobd.com.br/ skype: vjunior1981 Em 23 de julho de 2013 17:56, Fabio Prado fbifa...@gmail.com escreveu: ** Miltão, muito obrigado pelas dicas! Realmente acho que não vamos conseguir comprar um EXADATA por caso do alto custo e a não possibilidade de desmembramento de certos itens e softwares (verifiquei isso hoje com o Rodrigo Almeida), que poderiam baratear o custo. Aqui por exemplo, não precisamos de licenciamento de Partitioning e o Storage embutido do EXADATA. O ideal para nós vai ser comprar um novo servidor Intel e adquirir as licenças adicionais à parte! []s Fábio Prado http://www.fabioprado.net Em 22 de julho de 2013 20:02, Milton Bastos Henriquis Jr. miltonbas...@gmail.com escreveu: Fala Fabião! Cara, trabalhei numa empresa que comprou um Exalogic - nem posso citar valores pois tem um funcionário de lá que participa aqui dessa lista né Jorjão?? kkk Mas nem caberia comparação também, pois foi um valor muito mais alto do que vc citou, até pelo fato de não ser apenas um Exadata, mas um Exalogic (não lembro de Half ou Full). Depois disso trabalhei também numa parceira Oracle, com pré-vendas, e quase vendemos um Exadata pra uma empresa do ramo alimentício do interior do Paraná, A venda só não foi concretizada devido a saída inesperada do gerente de TI que queria fazer a compra. O que posso te dizer é que os preços realmente variam muito - a margem é grande, pois o valor do produto inclui toda a questão de licenciamento. Se fôssemos falar só de hardware essa variação não aconteceria tanto - afinal, todo hardware tem seu custo para ser produzido e comercializado, e em cima deste custo é colocado o lucro. Já a questão de licenciamento abre uma brecha pra Oracle trabalhar com preços. Isso envolve MUITA coisa... a Oracle tenta de tudo para vender máquinas pra setores governamentais, por exemplo. E quando é Governo, tem pregão eletrônico. Leilão! E em leilão a Oracle vai abaixando o preço até ganhar... a margem é grande. Dar 3 milhões de desconto pra eles é normal, pois é importante eles não perderem negócio. A grande sacada é: não mostre que vc QUER um Exadata. Apresente alternativas pro comercial da Oracle. Tem que ter concorrência. Só assim abrem as pernas. Fale que vc tá avaliando Teradata e Netezza também. Tem que ser duro na negociação! 2013/7/22 Fabio Prado fbifa...@gmail.com ** Pessoal, Existe a possibilidade (dependendo do custo) de adquirirmos um Exadata *Quarter Rack* ou *Eighth Rack* na empresa em que eu trabalho e eu por este motivo eu gostaria de saber* se alguém aqui no grupo já comprou algum destes servidores e qual valor pagou*. Conversando com alunos vejo que a Oracle negocia o valor destes servidores praticamente de acordo com o tamanho da empresa, quantidade de servidores que ela poderá adquirir e muitas outras variantes. Há alguns anos, uma empresa parceira da Oracle ofereceu um Quarter Rack para a empresa em que trabalho por aprox. 2 milhões de reais, enquanto que, conversando com um aluno, na empresa em que ele prestava serviços, foram adquiridos 8 servidores* Half Rack* (bem melhor que *Quarter Rack*) por menos de 1 milhão cada. Grato! -- Fábio Prado www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle [As partes desta mensagem que não continham texto foram removidas] [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/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ -- Links do Yahoo! Grupos -- Fábio Prado www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram