[oracle_br] SELECT COMPLEXO....desafio para os mestres
Bom dia pessoal, estou precisando de uma grande ajuda em um SELECT. Ele precisa atender as seguintes regras abaixo: Regra 1) Dividir o select em partições internas (pensei em função analitica, mas não consegui montar) de modo que tenha no minino 5 registros; Regra 2) A coluna TIPO deve ser 'S' para poder marcar o fim da partição; Vejam conforme as quebras que fiz nos comandos INSERTs (no final do email) a primeira partição possui 6 registros pois no quinto registro a coluna TIPO é igual a 'N' que não atende a regra 2. O objetivo é ter uma coluna no select (sem criar uma função no banco) de modo que eu consiga marcar as linhas com SEQ iguais a 6, 13,18 e 20 (que no caso é o final do select). Abaixo o resultado esperado com o nome de coluna QUEBRA SEQ T QUEBRA -- - -- 1 N 2 N 3 S 4 S 5 N 6 S S 7 N 8 S 9 S 10 S 11 N 12 N 13 S S 14 S 15 S 16 S 17 S 18 S S 19 N 20 N Segue abaixo a estrutura de exemplo para montar o select CREATE TABLE exemplo (seq NUMBER, tipo VARCHAR2(1)); INSERT INTO exemplo VALUES( 1,'N'); INSERT INTO exemplo VALUES( 2,'N'); INSERT INTO exemplo VALUES( 3,'S'); INSERT INTO exemplo VALUES( 4,'S'); INSERT INTO exemplo VALUES( 5,'N'); INSERT INTO exemplo VALUES( 6,'S'); -- INSERT INTO exemplo VALUES( 7,'N'); INSERT INTO exemplo VALUES( 8,'S'); INSERT INTO exemplo VALUES( 9,'S'); INSERT INTO exemplo VALUES(10,'S'); INSERT INTO exemplo VALUES(11,'N'); INSERT INTO exemplo VALUES(12,'N'); INSERT INTO exemplo VALUES(13,'S'); -- INSERT INTO exemplo VALUES(14,'S'); INSERT INTO exemplo VALUES(15,'S'); INSERT INTO exemplo VALUES(16,'S'); INSERT INTO exemplo VALUES(17,'S'); INSERT INTO exemplo VALUES(18,'S'); -- INSERT INTO exemplo VALUES(19,'N'); INSERT INTO exemplo VALUES(20,'N'); Obrigado. André
[oracle_br] Ferramenta para administração do banco 10g com RAC
Boa tarde a todos, gostaria de uma sugestão de vocês sobre uma boa ferramenta de adm do banco 10g com RAC. Obrigado. André
[oracle_br] plano de execução alterado em clientes diferentes
Bom dia a todos, Acabamos de realizar um migração de banco de dados 9i para 10g, trabalhando em Grid com 2 nós. Existe uma procedure no banco que executa apenas um cursor de pesquisa. Quando esta procedure é executada via SQL Plus (client 10g) ela é instantanea, porém quando esta procedure é disparada por uma aplicação Java ela demora alguns minutos (tempo suficiente para dar um gargalo grande no processo). Realizei trace (10046 level 12) nos 2 ambientes e realmente a paralização foi na abertura do cursor. Foi detectado que os planos de execução são diferentes. Rodei a procedure via SQL Plus na mesma maquina que está o servidor de aplicação Java e fica rápido também. É alguma ligação com a aplicação Java que está fazendo alterar o plano de execução do cursor. Preciso da ajuda de vocês para que a procedure rode nos 2 ambientes (SQL Plus/ Java / ...) com o mesmo plano de execução. Segue abaixo a versão atual do banco de dados e servidores. Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production With the Partitioning, Real Application Clusters, OLAP and Data Mining options -- S.O.: Linux Itanium Desde já agradeço a ajuda. André
[oracle_br] SELECT + refcursor
Bom dia a todos, É possível realizar um SELECT da seguinte forma? SELECT v_lista FROM dual; , onde v_lista é uma variável RECORD TYPE ou REFCURSOR? A idéia é que este select fique dinâmico e possa ler qualquer variável deste tipo. Desde já agradeço. PS: Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production Solaris 9
Re: RES: [oracle_br] Piores SELECTS [CPU e IO]
Obrigado pelo retorno Carlos, para utilizar o statspack rodando no começo do dia e outro no final teria algum impacto significante de consumo e espaço fisico no servidor? Mais uma vez obrigado pela ajuda. André --- Em oracle_br@yahoogrupos.com.br, Carlos A.M. Menezes [EMAIL PROTECTED] escreveu Caro, Use o statspack, tire um snapshot no começo do dia e outro no final, depois gere o relatório e você terá o que deseja. Cordialmente, Carlos Alfredo M. de Menezes -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de agjunior2 Enviada em: quinta-feira, 23 de fevereiro de 2006 19:32 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Piores SELECTS [CPU e IO] Bom dia a todos, Gostaria de saber se é possível montar uma rotina que grave em uma determinada tabela os 10 selects com maior consumo de processamento e os 10 select com maior consumo de I/O executados durante o dia. Qual seria o impacto no banco em preparar esta rotina? Obrigado. Oracle: 9iR2 ou superior SO : sem restrições André -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --__ Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine Links do Yahoo! Grupos -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --__ Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 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: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[oracle_br] Piores SELECTS [CPU e IO]
Bom dia a todos, Gostaria de saber se é possível montar uma rotina que grave em uma determinada tabela os 10 selects com maior consumo de processamento e os 10 select com maior consumo de I/O executados durante o dia. Qual seria o impacto no banco em preparar esta rotina? Obrigado. Oracle: 9iR2 ou superior SO : sem restrições André -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --__ Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 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: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[oracle_br] Flashback
Boa tarde a todos, Existe alguma forma de eu marcar um linha do tempo no banco de dados e recompilar triggers, alterar tabelas, indices, criar novos registros de parametrização e quaisquer alterações DDL e DML no banco e caso encontrar problemas eu conseguir retornar nesta marcação que eu havia feito? Eu conseguiria fazer esta marcação apenas para uma determinada SESSÃO de modo q todos os comandos DDL e DML não afetem outras sessões e, caso esteja tudo correto após conferencia, eu gravasse estas mudanças realmente no banco? (é como se fosse um commit para comandos DDL/DML) Estou trabalhando com o banco 10g e este recurso ajudaria nas atualizações que atualmente fazemos nos banco de dados nos clientes. Pode ocorrer casos da atualização não se completar ou até mesmo ocorrer erros no sistema após a instalação. Neste caso gostaria de voltar na versão anterior do banco de dados. Desde já obrigado. André -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --_ Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 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: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[oracle_br] Como capturar o comando que acarretou num erro Oracle?
Boa tarde a todos, Tenho uma trigger AFTER SERVERERROR na qual grava, em uma tabela de log, todos os erros que ocorrem no banco de um determinado usuário. Como eu conseguiria, de dentro da trigger, capturar o comando que acarretou determinado erro (que fez disparar a trigger), para nesta tabela de log eu ter o comando disparado e os erros ocorridos? -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --_ Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 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: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html