Res: [oracle_br] Re: Duvida Archive?

2007-04-19 Por tôpico Welvis Douglas Silva Moreto
Aqui na empresa temos algumas tabela que é feita apenas uma carga e depois os 
dados são deletados, como faço para q essas tabela não gere Archive. tem alguma 
forma, ja que para redu não dá., na realidade apenas irá diminuir. quando os 
inserts for acima da HWM.

att,

Welvis Douglas


- Mensagem original 
De: jlchiappa [EMAIL PROTECTED]
Para: oracle_br@yahoogrupos.com.br
Enviadas: Terça-feira, 17 de Abril de 2007 8:12:26
Assunto: [oracle_br] Re: Duvida Archive?

Não Welvis, nada a ver, é um conceito derivado do mecanismo básico de 
funcionalmento do bd Oracle : veja vc, visando performance quando o 
banco lê do disco um bloco contendo o(s) registro(s) que interessam, 
as alterações ** TODAS ** nesses registros (inclusive COMMITS!!!) são 
feitas no cache, ficam em RAM, que como vc sabe é algo volátil num 
caso de crash iriam pra cucuia... Então o REDO *** SEMPRE SEMPRE *** 
tem que ser gerado e ser seguramente armazenado em disco, pois é lá 
que fcam as alterações sofridas pelo(s) bloco(s), se der crash a RAM 
(e o cache) foram pro saco MAS o redo tá tá no disco, basta o ler e 
aplicá-lo no datafile que tudo é recuperado.. .. Então a cláusula 
NOLOGGING só funciona em situações muito específicas, onde o banco 
tem 100% de certeza que os blocos em disco no datafiles são virgens, 
nunca foram usados (portanto se der crash não precisa atualizar nada 
em disco, não há versão anterior dos blocos) , que é o que o 
INSERT /*+ APPEND */ faz (ele grava acima da marca de uso final do 
datafile, portanto pode se garantir que são blocos vazios)... 
Logicamente, mesmo usando insert /*+ append */, os datafiles de dados 
podem ser apendados, *** MAS *** os índices não, se vc relembrar os 
conceitos de bd um índice SEMPRE TEM que ser armazenado ordenado, 
então TEM QUE se inserir os dados novos ENTRE os dados anteriores, na 
ordem, muito provavelmente num bloco já usado, o REDO é inescapável 
aí... E mais, o próprio banco usa SIM internamente tabelas, que são 
sim atualizadas cfrme vc trabalha (mesmo em nologging), então SIM tem 
que se gerar REDO pra essas tabs do banco
Então a sua resposta é : 

== é *** IMPOSSÌVEL *** vc uma tabela não passe a gerar Redu / 
Archive, o que vc pode fazer é, em RAROS CASOS, diminuir o uso de 
REDO com essa cláusula NOLOGGING, SE e APENAS SE a operação sendo 
feita tem como ser garantida em blocos não-usados... .

[]s

Chiappa

--- Em [EMAIL PROTECTED] os.com.br, Welvis Douglas Silva Moreto 
welvinho18@ ... escreveu

 Olá Pessoal, gostaria de tirar uma duvida.
 
 para que uma tabela não passe a gerar Redu / Archive seria apenas 
dar um
 
 ALTER TABLE XXX NOLOGGING;
 
 ou submeter a tabela a um truncate table?
 
 é isso mesmo, ?
 
 att
 
 WELVIS DOUGLAS
 
  _ _ _ _ __
 Fale com seus amigos de graça com o novo Yahoo! Messenger 
 http://br.messenger .yahoo.com/ 
 
 [As partes desta mensagem que não continham texto foram removidas]





__
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 

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



Res: [oracle_br] Re: Duvida Archive?

2007-04-19 Por tôpico jlchiappa
Archive NADA MAIS É do que um arquivo de REDO LOG que ficou cheio e 
foi copiado, portanto SE não dá pra eliminar geração de log (pelos 
motivos ** FÍSICOS **, de ESTRUTURA INTERNA do bd Oracle listados 
anteriormente, OBVIAMENTE em log sendo gerado ele VAI pro arquivo de 
log, o arquivo de log VAI ficar cheio uma hora, PORTANTO será gerado 
archive, PONTO, inescapável. 
 O que vc PODE (e mesmo DEVE!!) fazer é mesmo tentar DIMINUIR a 
geração dos logs fazendo INSERT /*+ APPEND */ acima da HWM, usando 
TRUNCATE ao invés de DELETE, por aí E claro, vc não diz MAS 
imagino que essa carga é feita de um arquivo ** de texto **, como é 
típico, certo ??? Se os dados são como vc diz depois do processamento 
deletados, fica óbvia aí a chance de :

- OU usar uma Global Temporary table pra carregar os regs, que aí 
praticamente não gera nem redo, e (melhor ainda!!)  nem undo

- OU, em sendo bd 9i, vc simplesmente *** NÃO *** carregar do arquivo-
texto!!! No 9i em diante já existe a figura da EXTERNAL TABLE, que te 
permite fazer SELECTs === DIRETAMENTE de um arquivo texto Se for 
esse o caso, sem dúvida seria a melhor opção, a melhor maneira de 
acelerar uma carga que depois será jogada fora é NÃO FAZER A CARGA!!!

[]s

  Chiappa
--- Em oracle_br@yahoogrupos.com.br, Welvis Douglas Silva Moreto 
[EMAIL PROTECTED] escreveu

 Aqui na empresa temos algumas tabela que é feita apenas uma carga e 
depois os dados são deletados, como faço para q essas tabela não gere 
Archive. tem alguma forma, ja que para redu não dá., na realidade 
apenas irá diminuir. quando os inserts for acima da HWM.
 
 att,
 
 Welvis Douglas
 
 
 - Mensagem original 
 De: jlchiappa [EMAIL PROTECTED]
 Para: oracle_br@yahoogrupos.com.br
 Enviadas: Terça-feira, 17 de Abril de 2007 8:12:26
 Assunto: [oracle_br] Re: Duvida Archive?
 
 Não Welvis, nada a ver, é um conceito derivado do mecanismo básico 
de 
 funcionalmento do bd Oracle : veja vc, visando performance quando o 
 banco lê do disco um bloco contendo o(s) registro(s) que 
interessam, 
 as alterações ** TODAS ** nesses registros (inclusive COMMITS!!!) 
são 
 feitas no cache, ficam em RAM, que como vc sabe é algo volátil num 
 caso de crash iriam pra cucuia... Então o REDO *** SEMPRE SEMPRE 
*** 
 tem que ser gerado e ser seguramente armazenado em disco, pois é lá 
 que fcam as alterações sofridas pelo(s) bloco(s), se der crash a 
RAM 
 (e o cache) foram pro saco MAS o redo tá tá no disco, basta o ler e 
 aplicá-lo no datafile que tudo é recuperado.. .. Então a cláusula 
 NOLOGGING só funciona em situações muito específicas, onde o banco 
 tem 100% de certeza que os blocos em disco no datafiles são 
virgens, 
 nunca foram usados (portanto se der crash não precisa atualizar 
nada 
 em disco, não há versão anterior dos blocos) , que é o que o 
 INSERT /*+ APPEND */ faz (ele grava acima da marca de uso final 
do 
 datafile, portanto pode se garantir que são blocos vazios)... 
 Logicamente, mesmo usando insert /*+ append */, os datafiles de 
dados 
 podem ser apendados, *** MAS *** os índices não, se vc relembrar os 
 conceitos de bd um índice SEMPRE TEM que ser armazenado ordenado, 
 então TEM QUE se inserir os dados novos ENTRE os dados anteriores, 
na 
 ordem, muito provavelmente num bloco já usado, o REDO é inescapável 
 aí... E mais, o próprio banco usa SIM internamente tabelas, que são 
 sim atualizadas cfrme vc trabalha (mesmo em nologging), então SIM 
tem 
 que se gerar REDO pra essas tabs do banco
 Então a sua resposta é : 
 
 == é *** IMPOSSÌVEL *** vc uma tabela não passe a gerar Redu / 
 Archive, o que vc pode fazer é, em RAROS CASOS, diminuir o uso de 
 REDO com essa cláusula NOLOGGING, SE e APENAS SE a operação sendo 
 feita tem como ser garantida em blocos não-usados... .
 
 []s
 
 Chiappa
 
 --- Em [EMAIL PROTECTED] os.com.br, Welvis Douglas Silva Moreto 
 welvinho18@ ... escreveu
 
  Olá Pessoal, gostaria de tirar uma duvida.
  
  para que uma tabela não passe a gerar Redu / Archive seria apenas 
 dar um
  
  ALTER TABLE XXX NOLOGGING;
  
  ou submeter a tabela a um truncate table?
  
  é isso mesmo, ?
  
  att
  
  WELVIS DOUGLAS
  
   _ _ _ _ __
  Fale com seus amigos de graça com o novo Yahoo! Messenger 
  http://br.messenger .yahoo.com/ 
  
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 
 
 __
 Fale com seus amigos  de graça com o novo Yahoo! Messenger 
 http://br.messenger.yahoo.com/ 
 
 [As partes desta mensagem que não continham texto foram removidas]





Re: [oracle_br] Subtração entre datas

2007-04-19 Por tôpico G . A . S
Realmente Marco, percebi isso ao ver o resultado do SELECT. Fiz a mesma
coisa que me sugeriu. Valeu!

Abraço.


Em 18/04/07, FERNANDES Marco A SOFTTEK 
[EMAIL PROTECTED] escreveu:

   GAS,
 na verdade vc está trazendo a subtração em horas e não em dias
 pq vc está dividindo por 24 

 dias / 24 = horas

 e vc pode usar apenas assim:

 select trunc(sysdate) - trunc(data_criacao) from dual; -- retorna em dias

 abraço,
 Marco.

 

 From: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br[mailto:
 oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br] On Behalf
 Of PUB: G.A.S
 Sent: quarta-feira, 18 de abril de 2007 14:05
 To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Subject: Re: [oracle_br] Subtração entre datas

 Olá Marco, tudo bom?
 Realmente foi o que eu fiz, veja:

 trunc(((select sysdate from dual)-data_criacao)/24

 Dessa forma estou vendo a qto. meses o registro foi criado.

 Abraços.

 Em 18/04/07, FERNANDES Marco A SOFTTEK 
 [EMAIL PROTECTED]mfernandes%40fornecedores.confab.com.brmailto:
 mfernandes% mfernandes%2540fornecedores.confab.com.br  escreveu:
 
  GAS,
 
  basta vc usar subtração normal das datas que a resposta se dará em dias.
 
  select trunc(sysdate) - to_date('15/04/2007','dd/mm/') from dual
 
  abraço,
  Marco.
 
  
 
  From: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.brmailto:
 oracle_br%40yahoogrupos.com.br oracle_br%40yahoogrupos.com.br[mailto:
  oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br mailto:
 oracle_br%40yahoogrupos.com.br oracle_br%40yahoogrupos.com.br] On
 Behalf
  Of PUB: G.A.S
  Sent: quarta-feira, 18 de abril de 2007 10:21
  To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.brmailto:
 oracle_br%40yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
  Subject: [oracle_br] Subtração entre datas
 
  Olá pessoal, tudo bem?
 
  Estou fazendo uma procedure e preciso ver o intervalo de dias entre um
  determinado campo date com a data atual. Exemplo:
 
  Tabela_A
 
  Nome_A Varcha2(20),
  Data_de_criação Date.
 
  Tenho que ver se a data atual - data_de_criação = 90 dias.
 
  Alguém pode me dar um help com isso?
 
  Abraços.
 
  [As partes desta mensagem que não continham texto foram removidas]
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 

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

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

 



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



[oracle_br] Capturar ID da sessão

2007-04-19 Por tôpico Carlos Maurilio Silva
Bom dia,

Numa aplicação, gostaria de criar uma tabela temporária e que nela tivesse o ID 
(serial#, sid) como complemento do nome desta tabela.
Como eu faço pra conseguir pegar o sid e serial# da minha sessão corrente, uma 
vez que posso estar com mais de uma sessão aberta. 
Oracle9i Enterprise Edition Release 9.2.0.3.0

Obrigado,

Carlim




__
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 

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



Re: [oracle_br] Informação sobre curso

2007-04-19 Por tôpico Vinicius Bufoni
Olá Thiago,

Eu fiz o curso lá, é muuuito ruim...

Eu fechei o pacote Master, porem não consegui terminar os cursos devido
as turmas que eles nunca abrem...

Não recomendo.

Att
Vinicius Bufoni


Thiago Menon wrote:

 Olá,

 Gostaria de saber se alguem da lista ja fez curso de Administração de
 Banco de Dados Oracle na escola Tekno ?

 O q achou o que ja ouviram falar ?

 desculpe-me pelo tópico OFF.

 Thiago

  



RES: [oracle_br] Migração File System para ASM

2007-04-19 Por tôpico Vanberto Alessandro de Souza Zuim - FOR
Obrigado.. consegui fazer aqui, fiz pelo rman foi bem rapido,tava meio confuso 
com os parametros mais não é nem um bicho de 7 cabeças não.. rsrs
 
 
Obrigado a todos!!!
 
Vanberto Zuim
Administrador de Banco de Dados
Tecnologia da Informação



De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Cyro
Enviada em: quarta-feira, 18 de abril de 2007 19:22
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Migração File System para ASM



Se tiver acesso ao metalink da uma olhada no Note: 245262.1. Ele ensina
fazer um clone com o rman.

On 4/18/07, Gustavo Venturini de Lima [EMAIL PROTECTED] 
mailto:gventurini%40gmail.com  wrote:

 Bom dia Vanberto.
 É na base que receberá o seu backup.
 Esses parâmetros serão para identificar e informar os novos paths para os
 arquivos do banco.
 Não sei como vc pretende fazer a migração ou aplicação do backup, mas já
 te
 digo de antemão, que se puder utilizar o RMAN é BEM mais rápido...
 Faça um DUPLICATE DATABASE no RMAN e boa... Funciona legal e é bem
 prático...
 Outros parâmetros que vc pode precisar seria:
 db_file_name_convert=+DATA/uni, /apps/oracle/oradata/homologa/datafiles ,
 +ARCH/uni/archives
 log_file_name_convert=+DATA/uni, /apps/oracle/oradata/homologa/datafiles ,
 +ARCH/uni/archives

 Em 18/04/07, Vanberto Alessandro de Souza Zuim - FOR 
 [EMAIL PROTECTED] mailto:vanbertozuim%40jmacedo.com.br  
 vanbertozuim%40jmacedo.com.br escreveu:
 
  Bom dia amigo,estou pesquisando um pouco sobre a migração de FILE SYSTEM
  para ASM ,achei alguns tutorias na internet mais estou com algumas
 duvidas,
 
  1- Ele pede par altera os parâmetros :
 
  DB_CREATE_FILE_DEST , DB_CREATE_ONLINE_LOG_DEST_n,CONTROL_FILES ,mais
 pelo
  que vi na minha base que tem asm que vai receber o backup já tem tudo
 isso
  configurado dês da instalação...bom não entendi direito, não sei se ele
 que
  que eu altere a base que vai receber o backup no caso a do ASM ou a que
 vai
  passar ,no caso a que esta com file system
 
  alguém já fez esse tipo de migração?gostaria muito de tira algumas
  duvidas,
 
 
  Obrigado..
 
  Vanberto Zuim
  Administrador de Banco de Dados
  Tecnologia da Informação
 
  Vanberto Zuim
  Administrador de Banco de Dados
  OCA Oracle 10g
  Tecnologia da Informação
  [EMAIL PROTECTED] mailto:vanbertozuim%40jmacedo.com.br  
  vanbertozuim%40jmacedo.com.brvanbertozuim%40jmacedo.
 com.br
  (85) 4006-6021
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 

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

 


-- 
[ ]´s Cyro

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



 


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



[oracle_br] BULK COLLECT - Urgente

2007-04-19 Por tôpico logg
Senhores, 
Como trabalho com BULK COLLECT  ??
 Já cheguei a ver diversas materias , inclusive historico da lista, blog do 
Marcio Portes , Google
Mas esta meio confuso ainda. Os exemplos que peguei são pequenos, não  deu para 
ter uma idéia ainda, alguem tem um exemplo grande, de como trabalhar com BULK 
COLLECT  e cursores com updates inserts 
Pode ser uma proc de vcs mesmo que usam no seus bancos tals  :D
Abs.


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



[oracle_br] CBO e RBO

2007-04-19 Por tôpico leandrofff
No Oracle 9i, com o otimizador CHOOSE sem estatística coletada o banco
funciona como RULE. 
Se em uma query que realiza junção de tabelas, por exemplo 5 tabelas
envolvidas, houver estatística coletada em duas tabelas e as demas sem
estatisticas qual otimizador o Oracle ira utilizar (CHOOSE ou RULE)?




RE: [oracle_br] Informação sobre curso

2007-04-19 Por tôpico FERNANDES Marco A SOFTTEK
Eu não fiz o curso de Oracle mas tive uma má experiência
com essa empresa.
 
Fiz o curso de gestão de projetos que possui 2 módulos.
O primeiro módulo foi show ! o instrutor sabia o que dizia.
Mas antes do segundo módulo ficamos sabendo pelas
turmas anteriores que o cara que dava o segundo módulo
não manjava nada de GP... conversamos com a Tekno a fim
de que o instrutor do primeiro módulo também ministrasse
o segundo módulo e fomos ignorados... fizemos o segundo
módulo com o tal instrutor meia boca e realmente foi um
lixo ! ou seja, a Tekno não dá muita bola pra opinião ou
pedido dos alunos ! portanto não posso recomendar essa
empresa de treinamento.
 
Na minha opinião vc deveria procurar outra instituição com
melhores indicações. Ou fechar uma turma com algum 
mestre (na lista temos vários) que domina a arte e que
poderia oferecer mais qualidade por um ótimo custo !
 
Abraço,
Marco.



From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of PUB: 
Vinicius Bufoni
Sent: quinta-feira, 19 de abril de 2007 08:37
To: oracle_br@yahoogrupos.com.br
Subject: Re: [oracle_br] Informação sobre curso



Olá Thiago,

Eu fiz o curso lá, é muuuito ruim...

Eu fechei o pacote Master, porem não consegui terminar os cursos devido
as turmas que eles nunca abrem...

Não recomendo.

Att
Vinicius Bufoni

Thiago Menon wrote:

 Olá,

 Gostaria de saber se alguem da lista ja fez curso de Administração de
 Banco de Dados Oracle na escola Tekno ?

 O q achou o que ja ouviram falar ?

 desculpe-me pelo tópico OFF.

 Thiago

 



 


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



[oracle_br] Re: Informação sobre curso

2007-04-19 Por tôpico fabiano_fernando
Olá Thiago,

Também fiz o curso master lá  porem não recomendo,  eles demoram 15 
dias para responder seu e-mail e esta em contrato, as salas de aula 
vc não tem nem onde colocar o livro para acompanhar o professor.

Agora os instrutores não tenho que reclamar , pelo menos 
transparecia ser com experiencia.





--- Em oracle_br@yahoogrupos.com.br, FERNANDES Marco ASOFTTEK 
[EMAIL PROTECTED] escreveu

 Eu não fiz o curso de Oracle mas tive uma má experiência
 com essa empresa.
  
 Fiz o curso de gestão de projetos que possui 2 módulos.
 O primeiro módulo foi show ! o instrutor sabia o que dizia.
 Mas antes do segundo módulo ficamos sabendo pelas
 turmas anteriores que o cara que dava o segundo módulo
 não manjava nada de GP... conversamos com a Tekno a fim
 de que o instrutor do primeiro módulo também ministrasse
 o segundo módulo e fomos ignorados... fizemos o segundo
 módulo com o tal instrutor meia boca e realmente foi um
 lixo ! ou seja, a Tekno não dá muita bola pra opinião ou
 pedido dos alunos ! portanto não posso recomendar essa
 empresa de treinamento.
  
 Na minha opinião vc deveria procurar outra instituição com
 melhores indicações. Ou fechar uma turma com algum 
 mestre (na lista temos vários) que domina a arte e que
 poderia oferecer mais qualidade por um ótimo custo !
  
 Abraço,
 Marco.
 
 
 
 From: oracle_br@yahoogrupos.com.br 
[mailto:[EMAIL PROTECTED] On Behalf Of PUB: Vinicius 
Bufoni
 Sent: quinta-feira, 19 de abril de 2007 08:37
 To: oracle_br@yahoogrupos.com.br
 Subject: Re: [oracle_br] Informação sobre curso
 
 
 
 Olá Thiago,
 
 Eu fiz o curso lá, é muuuito ruim...
 
 Eu fechei o pacote Master, porem não consegui terminar os cursos 
devido
 as turmas que eles nunca abrem...
 
 Não recomendo.
 
 Att
 Vinicius Bufoni
 
 Thiago Menon wrote:
 
  Olá,
 
  Gostaria de saber se alguem da lista ja fez curso de 
Administração de
  Banco de Dados Oracle na escola Tekno ?
 
  O q achou o que ja ouviram falar ?
 
  desculpe-me pelo tópico OFF.
 
  Thiago
 
  
 
 
 
  
 
 
 [As partes desta mensagem que não continham texto foram removidas]





Re: [oracle_br] CBO e RBO

2007-04-19 Por tôpico Rodrigo Mufalani
Tire um trace da sessão onde a query é executada, com isso vai ter
mostrar a informação que vc deseja. Aqui abaixo um exemplo de trace
da instrução select count(*) from dual;

ALTER SESSION SET SQL_TRACE = TRUE;

SELECT COUNT(*)
FROM   dual;

ALTER SESSION SET SQL_TRACE = FALSE;



count= number of times OCI procedure was executed
cpu  = cpu time in seconds executing
elapsed  = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query= number of buffers gotten for consistent read
current  = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call


  SELECT COUNT(*)
  FROM   dual

callcountcpu elapseddisk   query current rows
--- -  - --- --- --- ---  ---
Parse   1   0.020.02   0   0   00
Execute 1   0.000.00   0   0   00
Fetch   2   0.000.00   0   1   41
--- -  - --- --- --- ---  ---
total   4   0.020.02   0   1   41

Misses in library cache during parse: 1
Optimizer goal: CHOOSE
Parsing user id: 121

Rows Row Source Operation
---  ---
   1  SORT AGGREGATE
   1   TABLE ACCESS FULL DUAL


No Oracle 9i, com o otimizador CHOOSE sem estatística coletada o banco
funciona como RULE.
Se em uma query que realiza junção de tabelas, por exemplo 5 tabelas
envolvidas, houver estatística coletada em duas tabelas e as demas sem
estatisticas qual otimizador o Oracle ira utilizar (CHOOSE ou RULE)?





Aqui na Oi Internet você ganha ou ganha. Além de acesso grátis com
qualidade, ganha contas ilimitadas de email com 1 giga cada uma. Ganha
espaço ilimitado para hospedar sua página pessoal. Ganha flog, suporte
grátis e muito mais. Baixe grátis o Discador em
http://www.oi.com.br/discador e comece a ganhar.

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





Re: [oracle_br] banco contingencia

2007-04-19 Por tôpico Rodrigo Mufalani
Andre,

 Dê uma olhada na solução DRBD + Heartbit aqui :

http://lists.linbit.com/pipermail/drbd-user/2005-October/003934.html


Atenciosamente,

/***/
/* Rodrigo Mufalani  */
/* Oracle 10g Adm Certified Associate */
/***/


Pessoal,

Qual melhor saída para um banco de contingência que deveficar no ar e
os logs podem ser aplicados de tempos em tempos ?

Eu coloquei a outra instancia copia o bkp do rman full anoite (nenhuma
utilização) e durante o dia gostaria de copiar somente osúltimos
logs gerados. Hoje copio os logs antes dos bkps dos archives na
produção.

Alguém tem alguma solução implementada parecida, sem usar dataguardou
soluções que dependem aumentar o licenciamento.

Alguém tem um script pronto em linux que copia somente o diferencial?
Tentei uma solução com rsync mas não funcionou parece que deve ter
algum bugpq ele sincroniza (copia tudo) sempre não sei se é devido o
tamanho dosarquivos.

Banco 9.2 #8211; linux RH

Obrigado.

--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.5.446 / Virus Database: 269.5.2/766 - Release Date: 18/4/2007
07:39


Aqui na Oi Internet você ganha ou ganha. Além de acesso grátis com
qualidade, ganha contas ilimitadas de email com 1 giga cada uma. Ganha
espaço ilimitado para hospedar sua página pessoal. Ganha flog, suporte
grátis e muito mais. Baixe grátis o Discador em
http://www.oi.com.br/discador e comece a ganhar.

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





Re: [oracle_br] BULK COLLECT - Urgente

2007-04-19 Por tôpico Roberto Oshikawa
Estou mandando um exemplo de como utilizo, espero que possa te ajudar

TYPE array IS TABLE OF Cliente%ROWTYPE INDEX BY BINARY_INTEGER;
Type_Clientearray;

bulk_error EXCEPTION;
PRAGMA exception_init (bulk_error, -24381);

CURSOR c_cur IS
SELECT t.*
  FROM Cliente t
 WHERE t.UF_Cliente = 'SP';


   BEGIN

  OPEN c_cur;
 LOOP FETCH c_cur
bulk collect
INTO Type_Cliente
limit 100;
 BEGIN
forall i IN 1 .. Type_Cliente.count
save exceptions
INSERT INTO Cliente_SP VALUES Cliente(i);
 EXCEPTION
WHEN bulk_error THEN
 errors :=  SQL%bulk_exceptions.count;
 l_cnt  := l_cnt + errors;
 FOR i IN 1..errors LOOP
 p_ds_mensagem :=  'Error iteration '  ||
SQL%bulk_exceptions(i).error_index ||
   ' Oracle error is ' ||
SQL%bulk_exceptions(i).error_code   ;
 dbms.. ( p_ds_mensagem );
 END LOOP;
WHEN OTHERS THEN
 null;
 END;

 EXIT WHEN c_cur%notfound;
 END LOOP;
 COMMIT;
  CLOSE c_cur;





Em 19/04/07, logg [EMAIL PROTECTED] escreveu:

   Senhores,
 Como trabalho com BULK COLLECT ??
 Já cheguei a ver diversas materias , inclusive historico da lista, blog do
 Marcio Portes , Google
 Mas esta meio confuso ainda. Os exemplos que peguei são pequenos, não deu
 para ter uma idéia ainda, alguem tem um exemplo grande, de como trabalhar
 com BULK COLLECT e cursores com updates inserts 
 Pode ser uma proc de vcs mesmo que usam no seus bancos tals :D
 Abs.

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

  



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



[oracle_br] Ajuda com select

2007-04-19 Por tôpico Leandro Concon
Senhores, bom dia!

Estou precisando recuperar o valor retornado do select e sete-lo em uma
variavel local VARCHAR2.
Valor retornado será utilizado para inserir em outra campo de outra tabela.

Abaixo um exemplo de como seria
DECLARE
var_mensagem VARCHAR2(2000);
BEGIN

 SELECT DISTINCT 'TESTE' || GRUPO.NOME
INTO var_mensagem
FROM GRUPO;

DBMS_OUTPUT.PUT_LINE(var_mensagem);

INSERT TESTE (ID,MENSAGEM) VALUES (1,var_mensagem);

END;

Obrigado.


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



[oracle_br] ORA-00979: not a GROUP BY expression

2007-04-19 Por tôpico Phael
Bom dia,
 
Vejam esse erro:
 
ORA-00979: not a GROUP BY expression
ORA-02063: preceding line from BASE2
 
Comando SQL: 
Select count(*), cd from [EMAIL PROTECTED] group by cd;
 
Vejam que o comando esta certo!!!
Esse erro ocorre em aplicações desenvolvidas em Visual Basic 6 usando ADO
para conexão.
 
Em qualquer ferramenta developers ou SQL*PLUs funciona sem problemas.
Esse erro começou do nada, ou seja, tudo esta funcionando e de repente
começou a dar esse
erro nas aplicações. A única coisa que poderia fazer gerar esse erro seria
essas atualizações “toscas”
do Windows, mas eu desinstalei elas via adicionar e remover programas e o
problema persiste.
 
Obs: A conexão é feita em outro banco (BASE1) e via public db_link ele
acessa o banco BASE2. Realço
de novo que funciona corretamente em outras ferramentas (ex: SQL*plus, PLSQL
Developers, etc) usando
o db link também.
Os 2 banco são Oracle EE 9.2.0.8, SO Red Hat AS 3.
 
Alguém já passou por esse erro?
 
Não tenho mais idéias de como resolver, visto que se for abrir chamado na
Oracle
acredito que eles vão falar que o problema esta na conexão ADO do VB.
 
Raphael




Re: [oracle_br] Informação sobre curso

2007-04-19 Por tôpico Thiago Menon
Aonde vc recomenda ?
Vc chegou a fazer algum outro ?
Qto tempo faz que vc fez o curso ?

Thiago

Vinicius Bufoni escreveu:
 Olá Thiago,

 Eu fiz o curso lá, é muuuito ruim...

 Eu fechei o pacote Master, porem não consegui terminar os cursos devido
 as turmas que eles nunca abrem...

 Não recomendo.

 Att
 Vinicius Bufoni


 Thiago Menon wrote:
   
 Olá,

 Gostaria de saber se alguem da lista ja fez curso de Administração de
 Banco de Dados Oracle na escola Tekno ?

 O q achou o que ja ouviram falar ?

 desculpe-me pelo tópico OFF.

 Thiago

  
 



   
 Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package » Procedure 
 » Scripts » Tutoriais acesse: 
 http://www.oraclebr.com.br/codigo/ListaCodigo.php 
 
 --
   
 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/ 
 --
   
 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] ORA-00979: not a GROUP BY expression

2007-04-19 Por tôpico Phael
Bom dia,

 

Vejam esse erro:

 

ORA-00979: not a GROUP BY expression

ORA-02063: preceding line from BASE2

 

Comando SQL: 

Select count(*), cd from [EMAIL PROTECTED] group by cd;

 

Vejam que o comando esta certo!!!

Esse erro ocorre em aplicações desenvolvidas em Visual Basic 6 usando ADO
para conexão.

 

Em qualquer ferramenta developers ou SQL*PLUs funciona sem problemas.

Esse erro começou do nada, ou seja, tudo esta funcionando e de repente
começou a dar esse

erro nas aplicações. A única coisa que poderia fazer gerar esse erro seria
essas atualizações “toscas”

do Windows, mas eu desinstalei elas via adicionar e remover programas e o
problema persiste.

 

Obs: A conexão é feita em outro banco (BASE1) e via public db_link ele
acessa o banco BASE2. Realço

de novo que funciona corretamente em outras ferramentas (ex: SQL*plus, PLSQL
Developers, etc) usando

o db link também.

Os 2 banco são Oracle EE 9.2.0.8, SO Red Hat AS 3.

 

Alguém já passou por esse erro?

 

Não tenho mais idéias de como resolver, visto que se for abrir chamado na
Oracle

acredito que eles vão falar que o problema esta na conexão ADO do VB.

 

Raphael



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



[oracle_br] Re: CBO e RBO

2007-04-19 Por tôpico leandrofff
de qualquer forma o otimizador será CHOOSE, porem sem estatistica ele
executará como RULE, o que será a mesma coisa que colocar um HINT
/*+RULE*/ na minha SELECT.
A minha dúvida é que uma parte das tabelas tem estatistica e outra
não. O que o Oracle faz?
coleta estatistica para as demais tabelas envolvidas ou ignora as
estatisticas e usa o otimizador com  RULE?

mesmo assim grato!

--- Em oracle_br@yahoogrupos.com.br, Rodrigo Mufalani [EMAIL PROTECTED]
escreveu

 Tire um trace da sessão onde a query é executada, com isso vai ter
 mostrar a informação que vc deseja. Aqui abaixo um exemplo de trace
 da instrução select count(*) from dual;
 
 ALTER SESSION SET SQL_TRACE = TRUE;
 
 SELECT COUNT(*)
 FROM   dual;
 
 ALTER SESSION SET SQL_TRACE = FALSE;
 
 


 count= number of times OCI procedure was executed
 cpu  = cpu time in seconds executing
 elapsed  = elapsed time in seconds executing
 disk = number of physical reads of buffers from disk
 query= number of buffers gotten for consistent read
 current  = number of buffers gotten in current mode (usually for update)
 rows = number of rows processed by the fetch or execute call


 
   SELECT COUNT(*)
   FROM   dual
 
 callcountcpu elapseddisk   query current rows
 --- -  - --- --- --- ---  ---
 Parse   1   0.020.02   0   0   00
 Execute 1   0.000.00   0   0   00
 Fetch   2   0.000.00   0   1   41
 --- -  - --- --- --- ---  ---
 total   4   0.020.02   0   1   41
 
 Misses in library cache during parse: 1
 Optimizer goal: CHOOSE
 Parsing user id: 121
 
 Rows Row Source Operation
 ---  ---
1  SORT AGGREGATE
1   TABLE ACCESS FULL DUAL
 
 
 No Oracle 9i, com o otimizador CHOOSE sem estatística coletada o banco
 funciona como RULE.
 Se em uma query que realiza junção de tabelas, por exemplo 5 tabelas
 envolvidas, houver estatística coletada em duas tabelas e as demas sem
 estatisticas qual otimizador o Oracle ira utilizar (CHOOSE ou RULE)?
 
 
 
 


 Aqui na Oi Internet você ganha ou ganha. Além de acesso grátis com
 qualidade, ganha contas ilimitadas de email com 1 giga cada uma. Ganha
 espaço ilimitado para hospedar sua página pessoal. Ganha flog, suporte
 grátis e muito mais. Baixe grátis o Discador em
 http://www.oi.com.br/discador e comece a ganhar.
 
 Agora, se o seu negócio é voar na internet sem pagar uma fortuna,
 assine Oi Internet banda larga e ganhe modem grátis. Clique em
 http://www.oi.com.br/bandalarga e aproveite essa moleza!





RES: [oracle_br] CBO e RBO

2007-04-19 Por tôpico Clayton Rocha
Consegui um diagrama do Oracle 8i, espero que não danifique a formatação.

Fonte: Note:66484.1

Att,

Clayton Rocha

QUERY IN

|
|
   \ /
 ---
| Is there a hint for table access, |
| an ORDERED, FIRST_ROWS or |
| ALL_ROWS hint ?   |
|   |  yes
| 7.3+ Does any table have PARALLEL |--- COST
|  set ?|
|  or   |
|  Partition Views involved?|
|   |
| 8.0+ As above and additionally,   |
|  Are there any:   |
|  Index Organised Tables (IOT) |
|  or   |
|  Partition Tables involved ?  |
|   |
| 8.1+ As above and additionally,   |
|  Are there any:   |
|  Domain Indexes (Inter Media) |
|  or   |
|  Parallelism set on Indexes   |
|  See Note 70008.1   |
|  or   |
|  Parallel instances set on|
|  an object|
|  or   |
|  Sample clauses   |
|  (Datawarehousing feature)|
|  or   |
|  Parallel CTAS|
|  or   |
|  Function-based indexes   |
|  or   |
|  Reverse Key Indexes  |
|  or   |
|  Query rewrite|
|  (materialised views) |
|  or   |
|  ANSI JOIN syntax is used |
|  in the query |
 ---
|
| no
|
 ---   yes
| Is there a RULE hint ?|--- RULE
 ---
|
| no
|
 ---
| Is RULE set at SYSTEM or SESSION  |  yes
| level and no CHOOSE hint ?|--- RULE
 ---
|
| no
|
 ---
| Is ALL_ROWS or FIRST_ROWS set at  |  yes
| SYSTEM or SESSION level and no|--- COST
| CHOOSE hint ? |
 ---
|
| no
|
 ---
| Are there statistics for any of   |  yes
| the tables ?  |--- COST
 ---
|
| no
|

   RULE



De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de leandrofff
Enviada em: quinta-feira, 19 de abril de 2007 10:22
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] CBO e RBO

No Oracle 9i, com o otimizador CHOOSE sem estatística coletada o banco
funciona como RULE. 
Se em uma query que realiza junção de tabelas, por exemplo 5 tabelas
envolvidas, houver estatística coletada em duas tabelas e as demas sem
estatisticas qual otimizador o Oracle ira utilizar (CHOOSE ou RULE)?
 



Re: [oracle_br] Re: CBO e RBO

2007-04-19 Por tôpico Andre Santos
Leandro

Pelo que me lembro de um curso da versão 9i, isso daria um trabalho extra ao
Oracle: ele faria a coleta de estatísticas das tabelas que estivessem sem,
cada vez que executasse a consulta.

Mas nunca fiz testes sobre isso, nem procurei confirmação na documentação do
Oracle. Ok?

Se você encontrar uma confirmação (ou refutação), por favor, compartilhe
conosco.

[ ]

André


Em 19/04/07, leandrofff [EMAIL PROTECTED] escreveu:

   de qualquer forma o otimizador será CHOOSE, porem sem estatistica ele
 executará como RULE, o que será a mesma coisa que colocar um HINT
 /*+RULE*/ na minha SELECT.
 A minha dúvida é que uma parte das tabelas tem estatistica e outra
 não. O que o Oracle faz?
 coleta estatistica para as demais tabelas envolvidas ou ignora as
 estatisticas e usa o otimizador com RULE?

 mesmo assim grato!

 --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 Rodrigo Mufalani [EMAIL PROTECTED]
 escreveu
 
  Tire um trace da sessão onde a query é executada, com isso vai ter
  mostrar a informação que vc deseja. Aqui abaixo um exemplo de trace
  da instrução select count(*) from dual;
 
  ALTER SESSION SET SQL_TRACE = TRUE;
 
  SELECT COUNT(*)
  FROM dual;
 
  ALTER SESSION SET SQL_TRACE = FALSE;
 
 
 

 
  count = number of times OCI procedure was executed
  cpu = cpu time in seconds executing
  elapsed = elapsed time in seconds executing
  disk = number of physical reads of buffers from disk
  query = number of buffers gotten for consistent read
  current = number of buffers gotten in current mode (usually for update)
  rows = number of rows processed by the fetch or execute call
 

 
 
  SELECT COUNT(*)
  FROM dual
 
  call count cpu elapsed disk query current rows
  --- - - --- --- --- --- ---
  Parse 1 0.02 0.02 0 0 0 0
  Execute 1 0.00 0.00 0 0 0 0
  Fetch 2 0.00 0.00 0 1 4 1
  --- - - --- --- --- --- ---
  total 4 0.02 0.02 0 1 4 1
 
  Misses in library cache during parse: 1
  Optimizer goal: CHOOSE
  Parsing user id: 121
 
  Rows Row Source Operation
  --- ---
  1 SORT AGGREGATE
  1 TABLE ACCESS FULL DUAL
 
 
  No Oracle 9i, com o otimizador CHOOSE sem estatística coletada o banco
  funciona como RULE.
  Se em uma query que realiza junção de tabelas, por exemplo 5 tabelas
  envolvidas, houver estatística coletada em duas tabelas e as demas sem
  estatisticas qual otimizador o Oracle ira utilizar (CHOOSE ou RULE)?
 
 
 
 
 
 --
  Aqui na Oi Internet você ganha ou ganha. Além de acesso grátis com
  qualidade, ganha contas ilimitadas de email com 1 giga cada uma. Ganha
  espaço ilimitado para hospedar sua página pessoal. Ganha flog, suporte
  grátis e muito mais. Baixe grátis o Discador em
  http://www.oi.com.br/discador e comece a ganhar.
 
  Agora, se o seu negócio é voar na internet sem pagar uma fortuna,
  assine Oi Internet banda larga e ganhe modem grátis. Clique em
  http://www.oi.com.br/bandalarga e aproveite essa moleza!
 

  



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



Re: [oracle_br] CBO e RBO

2007-04-19 Por tôpico Rodrigo Mufalani
O oracle não irá coletar as estatísticas para você das outras
tabelas envolvidas, creio que ele deva ignorar as estatísticas das
outras tabelas.



de qualquer forma o otimizador será CHOOSE, porem sem estatistica ele
executará como RULE, o que será a mesma coisa que colocar um HINT
/*+RULE*/ na minha SELECT.
A minha dúvida é que uma parte das tabelas tem estatistica e outra
não. O que o Oracle faz?
coleta estatistica para as demais tabelas envolvidas ou ignora as
estatisticas e usa o otimizador com RULE?




 Mensagem Original:
 Data: 10:50:35 19/04/2007
 De: Rodrigo Mufalani [EMAIL PROTECTED]
 Assunto: Re: [oracle_br] CBO e RBO

 Tire um trace da sessão onde a query é executada, com isso vai ter
 mostrar a informação que vc deseja. Aqui abaixo um exemplo de trace
 da instrução select count(*) from dual;

 ALTER SESSION SET SQL_TRACE = TRUE;

 SELECT COUNT(*)
 FROM   dual;

 ALTER SESSION SET SQL_TRACE = FALSE;


 
 count= number of times OCI procedure was executed
 cpu  = cpu time in seconds executing
 elapsed  = elapsed time in seconds executing
 disk = number of physical reads of buffers from disk
 query= number of buffers gotten for consistent read
 current  = number of buffers gotten in current mode (usually for update)
 rows = number of rows processed by the fetch or execute call
 

   SELECT COUNT(*)
   FROM   dual

 callcountcpu elapseddisk   query current rows
 --- -  - --- --- --- ---  ---
 Parse   1   0.020.02   0   0   00
 Execute 1   0.000.00   0   0   00
 Fetch   2   0.000.00   0   1   41
 --- -  - --- --- --- ---  ---
 total   4   0.020.02   0   1   41

 Misses in library cache during parse: 1
 Optimizer goal: CHOOSE
 Parsing user id: 121

 Rows Row Source Operation
 ---  ---
1  SORT AGGREGATE
1   TABLE ACCESS FULL DUAL


 No Oracle 9i, com o otimizador CHOOSE sem estatística coletada o banco
 funciona como RULE.
 Se em uma query que realiza junção de tabelas, por exemplo 5 tabelas
 envolvidas, houver estatística coletada em duas tabelas e as demas sem
 estatisticas qual otimizador o Oracle ira utilizar (CHOOSE ou RULE)?




 
 Aqui na Oi Internet você ganha ou ganha. Além de acesso grátis com
 qualidade, ganha contas ilimitadas de email com 1 giga cada uma. Ganha
 espaço ilimitado para hospedar sua página pessoal. Ganha flog, suporte
 grátis e muito mais. Baixe grátis o Discador em
 http://www.oi.com.br/discador e comece a ganhar.

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






Atenciosamente,

/***/
/* Rodrigo Mufalani  */
/* Oracle 10g Adm Certified Associate */
/***/

Aqui na Oi Internet você ganha ou ganha. Além de acesso grátis com
qualidade, ganha contas ilimitadas de email com 1 giga cada uma. Ganha
espaço ilimitado para hospedar sua página pessoal. Ganha flog, suporte
grátis e muito mais. Baixe grátis o Discador em
http://www.oi.com.br/discador e comece a ganhar.

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





Re: [oracle_br] Re: Informação sobre curs o

2007-04-19 Por tôpico Thiago Menon
Valeu pela sua opnião,

E quanto ao conteudo ensinado vc tirou proveito do que foi passado ?  
Eles passam todos os topicos que está no conteudo do curso ?

muito obrigado
Thiago

fabiano_fernando escreveu:
 Olá Thiago,

 Também fiz o curso master lá  porem não recomendo,  eles demoram 15 
 dias para responder seu e-mail e esta em contrato, as salas de aula 
 vc não tem nem onde colocar o livro para acompanhar o professor.

 Agora os instrutores não tenho que reclamar , pelo menos 
 transparecia ser com experiencia.





 --- Em oracle_br@yahoogrupos.com.br, FERNANDES Marco ASOFTTEK 
 [EMAIL PROTECTED] escreveu
   
 Eu não fiz o curso de Oracle mas tive uma má experiência
 com essa empresa.
  
 Fiz o curso de gestão de projetos que possui 2 módulos.
 O primeiro módulo foi show ! o instrutor sabia o que dizia.
 Mas antes do segundo módulo ficamos sabendo pelas
 turmas anteriores que o cara que dava o segundo módulo
 não manjava nada de GP... conversamos com a Tekno a fim
 de que o instrutor do primeiro módulo também ministrasse
 o segundo módulo e fomos ignorados... fizemos o segundo
 módulo com o tal instrutor meia boca e realmente foi um
 lixo ! ou seja, a Tekno não dá muita bola pra opinião ou
 pedido dos alunos ! portanto não posso recomendar essa
 empresa de treinamento.
  
 Na minha opinião vc deveria procurar outra instituição com
 melhores indicações. Ou fechar uma turma com algum 
 mestre (na lista temos vários) que domina a arte e que
 poderia oferecer mais qualidade por um ótimo custo !
  
 Abraço,
 Marco.

 

 From: oracle_br@yahoogrupos.com.br 
 
 [mailto:[EMAIL PROTECTED] On Behalf Of PUB: Vinicius 
 Bufoni
   
 Sent: quinta-feira, 19 de abril de 2007 08:37
 To: oracle_br@yahoogrupos.com.br
 Subject: Re: [oracle_br] Informação sobre curso



 Olá Thiago,

 Eu fiz o curso lá, é muuuito ruim...

 Eu fechei o pacote Master, porem não consegui terminar os cursos 
 
 devido
   
 as turmas que eles nunca abrem...

 Não recomendo.

 Att
 Vinicius Bufoni

 Thiago Menon wrote:
 
 Olá,

 Gostaria de saber se alguem da lista ja fez curso de 
   
 Administração de
   
 Banco de Dados Oracle na escola Tekno ?

 O q achou o que ja ouviram falar ?

 desculpe-me pelo tópico OFF.

 Thiago


   

  


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

 




   
 Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package » Procedure 
 » Scripts » Tutoriais acesse: 
 http://www.oraclebr.com.br/codigo/ListaCodigo.php 
 
 --
   
 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/ 
 --
   
 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] CBO e RBO

2007-04-19 Por tôpico Andre Santos
Rodrigo

Pelo diagrama que o colega Clayton Rocha mandou (Fonte: Note:66484.1, ref.
versão 8i), o Oracle NÃO faria por regra (rule) neste caso...

   ---
   | Are there statistics for any of | yes
   | the tables ? |--- COST
   ---
   |
   | no
   |
   RULE

O que mencionei, realmente, foi de memória, conforme comentado em
um curso (mas não busquei confirmação na documentação... então fica em
aberto, se alguém tiver essa informação).

[ ]

André


Em 19/04/07, Rodrigo Mufalani [EMAIL PROTECTED] escreveu:

   O oracle não irá coletar as estatísticas para você das outras
 tabelas envolvidas, creio que ele deva ignorar as estatísticas das
 outras tabelas.

 de qualquer forma o otimizador será CHOOSE, porem sem estatistica ele
 executará como RULE, o que será a mesma coisa que colocar um HINT
 /*+RULE*/ na minha SELECT.
 A minha dúvida é que uma parte das tabelas tem estatistica e outra
 não. O que o Oracle faz?
 coleta estatistica para as demais tabelas envolvidas ou ignora as
 estatisticas e usa o otimizador com RULE?

  Mensagem Original:
  Data: 10:50:35 19/04/2007
  De: Rodrigo Mufalani [EMAIL PROTECTED] mufalani%40oi.com.br
  Assunto: Re: [oracle_br] CBO e RBO

  Tire um trace da sessão onde a query é executada, com isso vai ter
  mostrar a informação que vc deseja. Aqui abaixo um exemplo de trace
  da instrução select count(*) from dual;
 
  ALTER SESSION SET SQL_TRACE = TRUE;
 
  SELECT COUNT(*)
  FROM dual;
 
  ALTER SESSION SET SQL_TRACE = FALSE;
 
 
 
 
  count = number of times OCI procedure was executed
  cpu = cpu time in seconds executing
  elapsed = elapsed time in seconds executing
  disk = number of physical reads of buffers from disk
  query = number of buffers gotten for consistent read
  current = number of buffers gotten in current mode (usually for update)
  rows = number of rows processed by the fetch or execute call
 
 
 
  SELECT COUNT(*)
  FROM dual
 
  call count cpu elapsed disk query current rows
  --- - - --- --- --- --- ---
  Parse 1 0.02 0.02 0 0 0 0
  Execute 1 0.00 0.00 0 0 0 0
  Fetch 2 0.00 0.00 0 1 4 1
  --- - - --- --- --- --- ---
  total 4 0.02 0.02 0 1 4 1
 
  Misses in library cache during parse: 1
  Optimizer goal: CHOOSE
  Parsing user id: 121
 
  Rows Row Source Operation
  --- ---
  1 SORT AGGREGATE
  1 TABLE ACCESS FULL DUAL
 
 
  No Oracle 9i, com o otimizador CHOOSE sem estatística coletada o banco
  funciona como RULE.
  Se em uma query que realiza junção de tabelas, por exemplo 5 tabelas
  envolvidas, houver estatística coletada em duas tabelas e as demas sem
  estatisticas qual otimizador o Oracle ira utilizar (CHOOSE ou RULE)?
 
 
 
 
  --
  Aqui na Oi Internet você ganha ou ganha. Além de acesso grátis com
  qualidade, ganha contas ilimitadas de email com 1 giga cada uma. Ganha
  espaço ilimitado para hospedar sua página pessoal. Ganha flog, suporte
  grátis e muito mais. Baixe grátis o Discador em
  http://www.oi.com.br/discador e comece a ganhar.
 
  Agora, se o seu negócio é voar na internet sem pagar uma fortuna,
  assine Oi Internet banda larga e ganhe modem grátis. Clique em
  http://www.oi.com.br/bandalarga e aproveite essa moleza!
 
 
 

 Atenciosamente,

 /***/
 /* Rodrigo Mufalani */
 /* Oracle 10g Adm Certified Associate */
 /***/
 --
 Aqui na Oi Internet você ganha ou ganha. Além de acesso grátis com
 qualidade, ganha contas ilimitadas de email com 1 giga cada uma. Ganha
 espaço ilimitado para hospedar sua página pessoal. Ganha flog, suporte
 grátis e muito mais. Baixe grátis o Discador em
 http://www.oi.com.br/discador e comece a ganhar.

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

  



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



RES: [oracle_br] Ajuda com select

2007-04-19 Por tôpico Fabio Santos
Afinal, qual o erro já que você já colocou o código no email?
 
abraços
 
 

-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
Em nome de Leandro Concon
Enviada em: quinta-feira, 19 de abril de 2007 11:34
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Ajuda com select



Senhores, bom dia!

Estou precisando recuperar o valor retornado do select e sete-lo em uma
variavel local VARCHAR2.
Valor retornado será utilizado para inserir em outra campo de outra
tabela.

Abaixo um exemplo de como seria
DECLARE
var_mensagem VARCHAR2(2000)-;
BEGIN

SELECT DISTINCT 'TESTE' || GRUPO.NOME
INTO var_mensagem
FROM GRUPO;

DBMS_OUTPUT.-PUT_LINE(-var_mensagem)-;

INSERT TESTE (ID,MENSAGEM) VALUES (1,var_mensagem)-;

END;

Obrigado.

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



 


--
Internal Virus Database is out-of-date.
Checked by AVG Free Edition.
Version: 7.5.446 / Virus Database: 268.18.25/745 - Release Date:
3/4/2007 12:48



-- 
Internal Virus Database is out-of-date.
Checked by AVG Free Edition.
Version: 7.5.446 / Virus Database: 268.18.25/745 - Release Date:
3/4/2007 12:48
 


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



Re: [oracle_br] Re: Informação sobre curso

2007-04-19 Por tôpico Andre Santos
Thiago

Já fiz cursos na Tekno, há muito tempo (1998), e fiquei satisfeito.
Porém, nos últimos tempos, senti problemas com fechamento de turmas
(principalmente).
Eles têm um preço e parcelamento atraente... A qualidade, atualmente, vai
depender muito do instrutor que você pegar.

[ ]

André


Em 19/04/07, Thiago Menon [EMAIL PROTECTED] escreveu:

   Valeu pela sua opnião,

 E quanto ao conteudo ensinado vc tirou proveito do que foi passado ?
 Eles passam todos os topicos que está no conteudo do curso ?

 muito obrigado
 Thiago

 fabiano_fernando escreveu:
  Olá Thiago,
 
  Também fiz o curso master lá porem não recomendo, eles demoram 15
  dias para responder seu e-mail e esta em contrato, as salas de aula
  vc não tem nem onde colocar o livro para acompanhar o professor.
 
  Agora os instrutores não tenho que reclamar , pelo menos
  transparecia ser com experiencia.
 
 
 
 
 
  --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 FERNANDES Marco A SOFTTEK
  [EMAIL PROTECTED] escreveu
 
  Eu não fiz o curso de Oracle mas tive uma má experiência
  com essa empresa.
 
  Fiz o curso de gestão de projetos que possui 2 módulos.
  O primeiro módulo foi show ! o instrutor sabia o que dizia.
  Mas antes do segundo módulo ficamos sabendo pelas
  turmas anteriores que o cara que dava o segundo módulo
  não manjava nada de GP... conversamos com a Tekno a fim
  de que o instrutor do primeiro módulo também ministrasse
  o segundo módulo e fomos ignorados... fizemos o segundo
  módulo com o tal instrutor meia boca e realmente foi um
  lixo ! ou seja, a Tekno não dá muita bola pra opinião ou
  pedido dos alunos ! portanto não posso recomendar essa
  empresa de treinamento.
 
  Na minha opinião vc deveria procurar outra instituição com
  melhores indicações. Ou fechar uma turma com algum
  mestre (na lista temos vários) que domina a arte e que
  poderia oferecer mais qualidade por um ótimo custo !
 
  Abraço,
  Marco.
 
  
 
  From: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 
  [mailto:oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br]
 On Behalf Of PUB: Vinicius
  Bufoni
 
  Sent: quinta-feira, 19 de abril de 2007 08:37
  To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
  Subject: Re: [oracle_br] Informação sobre curso
 
 
 
  Olá Thiago,
 
  Eu fiz o curso lá, é muuuito ruim...
 
  Eu fechei o pacote Master, porem não consegui terminar os cursos
 
  devido
 
  as turmas que eles nunca abrem...
 
  Não recomendo.
 
  Att
  Vinicius Bufoni
 
  Thiago Menon wrote:
 
  Olá,
 
  Gostaria de saber se alguem da lista ja fez curso de
 
  Administração de
 
  Banco de Dados Oracle na escola Tekno ?
 
  O q achou o que ja ouviram falar ?
 
  desculpe-me pelo tópico OFF.
 
  Thiago
 
 
 
 
 
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 
 
 
 
  Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package »
 Procedure » Scripts » Tutoriais acesse:
 http://www.oraclebr.com.br/codigo/ListaCodigo.php
 
  --
 
  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/
  --
 
  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]



[oracle_br] Tutorial de Application Server

2007-04-19 Por tôpico Elias Magalhães da Paixão Junior
Alguém conhece um bom livro, tutorial ou apostila, para comprar ou baixar (de 
preferência) de Application Server???

 

 

Elias Magalhães da Paixão Junior





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



RES: [oracle_br] Subtração entre datas

2007-04-19 Por tôpico Rafael Milanez
Faz assim uma opção usa o MONTHS_BETWEEN o result traz em meses ai é só 
converter para dias

 

trunc(months_between(sysdate,data_criacao))*30 = 90

 

-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de G.A.S
Enviada em: quarta-feira, 18 de abril de 2007 14:05
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Subtração entre datas

 

Olá Marco, tudo bom?
Realmente foi o que eu fiz, veja:

trunc(((select sysdate from dual)-data_criacao)/24

Dessa forma estou vendo a qto. meses o registro foi criado.

Abraços.

 



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



RES: [oracle_br] 1/2 Off - Média de valores contrato consultoria DBA

2007-04-19 Por tôpico Elias Magalhães da Paixão Junior
PJ ou CLT?

 

Elias Magalhães da Paixão Junior

___


Tribunal de Justiça do Estado do Rio de Janeiro 

DGTEC-DPROD-DIBDA - Divisão de Banco de Dados 
Tel.: (0XX21) 3133.3417



De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de gibonbr
Enviada em: Wednesday, April 18, 2007 4:17 PM
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] 1/2 Off - Média de valores contrato consultoria DBA

 

Galera,
poderiam me informar qual a média de valores $$$ praticados 
pelas empresas de Consultoria para o serviço de DBA? (tipo qual o 
valor mês por x horas)

sds

 



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



RES: [oracle_br] Subtração entre datas

2007-04-19 Por tôpico Elias Magalhães da Paixão Junior
O que o trunc antes do date faz???



De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de FERNANDES 
Marco A SOFTTEK
Enviada em: Wednesday, April 18, 2007 10:34 AM
Para: oracle_br@yahoogrupos.com.br
Assunto: RE: [oracle_br] Subtração entre datas

 

GAS,

basta vc usar subtração normal das datas que a resposta se dará em dias.

select trunc(sysdate) - to_date('15/04/2007','dd/mm/') from dual

abraço,
Marco. 



From: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
[mailto:oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br ] 
On Behalf Of PUB: G.A.S
Sent: quarta-feira, 18 de abril de 2007 10:21
To: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br 
Subject: [oracle_br] Subtração entre datas

Olá pessoal, tudo bem?

Estou fazendo uma procedure e preciso ver o intervalo de dias entre um
determinado campo date com a data atual. Exemplo:

Tabela_A

Nome_A Varcha2(20),
Data_de_criação Date.

Tenho que ver se a data atual - data_de_criação = 90 dias.

Alguém pode me dar um help com isso?

Abraços.

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

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

 



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



RES: [oracle_br] Problemas com o Oracle

2007-04-19 Por tôpico Elias Magalhães da Paixão Junior
Creio que esse não seja um erro do Oracle.

 

Elias Magalhães da Paixão Junior

___


Tribunal de Justiça do Estado do Rio de Janeiro 

DGTEC-DPROD-DIBDA - Divisão de Banco de Dados 
Tel.: (0XX21) 3133.3417



De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Julio 
Martins
Enviada em: Wednesday, April 18, 2007 9:36 AM
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Problemas com o Oracle

 

Bom dia meus amigos.

Sou novo neste grupo. Não conheço muito o funcionamento do Oracle, porém já
trabalhei muito tempo com Sybase e SqlServer.
Estou passando por um problema com o qual não consigo lidar!

Tenho uma aplicação PHP que acessa simultaneamente 2 hosts ORACLE distintos.
Por exemplo, O primeiro Combo da minha tela busca dados da tabela_A do host
172.30.0.28 e o segundo Combo busca os dados da tabela_B do host 10.10.2.4.
O fato é que estou tendo um proble intermitente. Em certas horas, ao clicar
na minha página ela retorna o erro 404 - Page not Found.
Observei o log gerado pelo Apache, onde esta hospedado meu PHP ele gera o
seguinte erro:

[Wed Apr 18 08:55:00 2007] [notice] child pid 3107 exit signal Segmentation
fault (11)

Vocês já viram alguma coisa parecida?

Estou achando que seja alguma incompatibilidade entre o PHP e o oracle no
caso de acessar dois hosts distintos de maneira simultanea.

Estou postando a mesma mensagem no forum do PHP, gostaria de ajuda. Se
alguém já passou por isso e souber como resolver, por favor!

Julio Martins

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

 



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



RES: [oracle_br] Subtração entre datas

2007-04-19 Por tôpico Rafael Milanez
Vc pode usar a função MONTHS_BETWEEN , ela traz a diferença de duas datas em 
meses , ai vc converte meses para dias

 

Select trunc(months_between(sysdate,Data_de_criação)) * 30 from tabela_nome

 

Depois vc usa um CASE WHEN para comparar o resultado se é 90 dias

 

-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de G.A.S
Enviada em: quarta-feira, 18 de abril de 2007 10:21
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Subtração entre datas

 

Olá pessoal, tudo bem?

Estou fazendo uma procedure e preciso ver o intervalo de dias entre um
determinado campo date com a data atual. Exemplo:

Tabela_A

Nome_A Varcha2(20),
Data_de_criação Date.

Tenho que ver se a data atual - data_de_criação = 90 dias.

Alguém pode me dar um help com isso?

Abraços.

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

 



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



RES: [oracle_br] Subtração entre datas

2007-04-19 Por tôpico Rafael Milanez
Vc pode usar a função MONTHS_BETWEEN , ela traz a diferença em meses entre duas 
datas, ai vc converte meses para dias

 

Select trunc(months_between(sysdate,Data_de_criação)) * 30 from tabela_nome

 

 

 

-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de G.A.S
Enviada em: quarta-feira, 18 de abril de 2007 14:05
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Subtração entre datas

 

Olá Marco, tudo bom?
Realmente foi o que eu fiz, veja:

trunc(((select sysdate from dual)-data_criacao)/24

Dessa forma estou vendo a qto. meses o registro foi criado.

Abraços.

 
 



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



Re: [oracle_br] Validar se o campo tem caractere especial

2007-04-19 Por tôpico Rafael Alexandre Schmitt
Olá,

Não sei se entendi direito mas acho que é só você fazer :

if ( campo is null ) then
...

end if;

ou 

if ( substr(campo,1,1) = ' ' ) then
  ...
end if;


Rafael.


  - Original Message - 
  From: Alex dos Santos 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Wednesday, April 18, 2007 7:11 PM
  Subject: [oracle_br] Validar se o campo tem caractere especial


  Bom dia lista.

  Eu gostaria de saber como eu verifico se uma coluna tem caracter especial no 
seu conteudo. O campo é Varchar.

  Abraços
  Alex dos Santos

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



   


--
  Esta mensagem foi verificada pelo E-mail Protegido Terra.
  Scan engine: McAfee VirusScan / Atualizado em 18/04/2007 / Versão: 5.1.00/5012
  Proteja o seu e-mail Terra: http://mail.terra.com.br/ 



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



RES: [oracle_br] Subtração entre datas

2007-04-19 Por tôpico Rafael Milanez
Zera o formato de saída do inicio, ex: select trunc(sysdate,'mm') from dual;

 

-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Elias 
Magalhães da Paixão Junior
Enviada em: quarta-feira, 18 de abril de 2007 12:06
Para: oracle_br@yahoogrupos.com.br
Assunto: RES: [oracle_br] Subtração entre datas

 

O que o trunc antes do date faz???



De: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
[mailto:oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br ] 
Em nome de FERNANDES Marco A SOFTTEK
Enviada em: Wednesday, April 18, 2007 10:34 AM
Para: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br 
Assunto: RE: [oracle_br] Subtração entre datas

GAS,

basta vc usar subtração normal das datas que a resposta se dará em dias.

select trunc(sysdate) - to_date('15/04/2007','dd/mm/') from dual

abraço,
Marco. 



From: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
mailto:oracle_br%40yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br 
mailto:oracle_br%40yahoogrupos.com.br  
mailto:oracle_br%40yahoogrupos.com.br ] On Behalf Of PUB: G.A.S
Sent: quarta-feira, 18 de abril de 2007 10:21
To: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
mailto:oracle_br%40yahoogrupos.com.br 
Subject: [oracle_br] Subtração entre datas

Olá pessoal, tudo bem?

Estou fazendo uma procedure e preciso ver o intervalo de dias entre um
determinado campo date com a data atual. Exemplo:

Tabela_A

Nome_A Varcha2(20),
Data_de_criação Date.

Tenho que ver se a data atual - data_de_criação = 90 dias.

Alguém pode me dar um help com isso?

Abraços.

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

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

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

 



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



[oracle_br] teste

2007-04-19 Por tôpico Rafael Milanez
 

 

-Mensagem original-
De: Rafael Milanez 
Enviada em: quarta-feira, 18 de abril de 2007 16:21
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] teste

 

 



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



[oracle_br] Re: CBO e RBO

2007-04-19 Por tôpico leandrofff
isso mesmo Andre, essa é a duvida que tenho.
Pelo que vi o Oracle não realiza coleta das tabelas envolvidas, porem
plano de execução é alterado. Não é o mesmo que sem estatistica, RULE.

--- Em oracle_br@yahoogrupos.com.br, Andre Santos
[EMAIL PROTECTED] escreveu

 Leandro
 
 Pelo que me lembro de um curso da versão 9i, isso daria um trabalho
extra ao
 Oracle: ele faria a coleta de estatísticas das tabelas que
estivessem sem,
 cada vez que executasse a consulta.
 
 Mas nunca fiz testes sobre isso, nem procurei confirmação na
documentação do
 Oracle. Ok?
 
 Se você encontrar uma confirmação (ou refutação), por favor, compartilhe
 conosco.
 
 [ ]
 
 André
 
 
 Em 19/04/07, leandrofff [EMAIL PROTECTED] escreveu:
 
de qualquer forma o otimizador será CHOOSE, porem sem
estatistica ele
  executará como RULE, o que será a mesma coisa que colocar um HINT
  /*+RULE*/ na minha SELECT.
  A minha dúvida é que uma parte das tabelas tem estatistica e outra
  não. O que o Oracle faz?
  coleta estatistica para as demais tabelas envolvidas ou ignora as
  estatisticas e usa o otimizador com RULE?
 
  mesmo assim grato!
 
  --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
  Rodrigo Mufalani mufalani@
  escreveu
  
   Tire um trace da sessão onde a query é executada, com isso vai ter
   mostrar a informação que vc deseja. Aqui abaixo um exemplo de trace
   da instrução select count(*) from dual;
  
   ALTER SESSION SET SQL_TRACE = TRUE;
  
   SELECT COUNT(*)
   FROM dual;
  
   ALTER SESSION SET SQL_TRACE = FALSE;
  
  
  
 
 

   count = number of times OCI procedure was executed
   cpu = cpu time in seconds executing
   elapsed = elapsed time in seconds executing
   disk = number of physical reads of buffers from disk
   query = number of buffers gotten for consistent read
   current = number of buffers gotten in current mode (usually for
update)
   rows = number of rows processed by the fetch or execute call
  
 
 

  
   SELECT COUNT(*)
   FROM dual
  
   call count cpu elapsed disk query current rows
   --- - - --- --- --- --- ---
   Parse 1 0.02 0.02 0 0 0 0
   Execute 1 0.00 0.00 0 0 0 0
   Fetch 2 0.00 0.00 0 1 4 1
   --- - - --- --- --- --- ---
   total 4 0.02 0.02 0 1 4 1
  
   Misses in library cache during parse: 1
   Optimizer goal: CHOOSE
   Parsing user id: 121
  
   Rows Row Source Operation
   --- ---
   1 SORT AGGREGATE
   1 TABLE ACCESS FULL DUAL
  
  
   No Oracle 9i, com o otimizador CHOOSE sem estatística coletada o
banco
   funciona como RULE.
   Se em uma query que realiza junção de tabelas, por exemplo 5 tabelas
   envolvidas, houver estatística coletada em duas tabelas e as
demas sem
   estatisticas qual otimizador o Oracle ira utilizar (CHOOSE ou RULE)?
  
  
  
  
  
  --
   Aqui na Oi Internet você ganha ou ganha. Além de acesso grátis com
   qualidade, ganha contas ilimitadas de email com 1 giga cada uma.
Ganha
   espaço ilimitado para hospedar sua página pessoal. Ganha flog,
suporte
   grátis e muito mais. Baixe grátis o Discador em
   http://www.oi.com.br/discador e comece a ganhar.
  
   Agora, se o seu negócio é voar na internet sem pagar uma fortuna,
   assine Oi Internet banda larga e ganhe modem grátis. Clique em
   http://www.oi.com.br/bandalarga e aproveite essa moleza!
  
 
   
 
 
 
 [As partes desta mensagem que não continham texto foram removidas]





RE: [oracle_br] Subtração entre datas

2007-04-19 Por tôpico FERNANDES Marco A SOFTTEK
O trunc zera a parte do horário... por exemplo,
se campo_data = '20/04/2007 14:15:22'
 
trunc(campo_data) = '20/04/2007 00:00:00'



From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of PUB: 
Elias Magalhães da Paixão Junior
Sent: quarta-feira, 18 de abril de 2007 12:06
To: oracle_br@yahoogrupos.com.br
Subject: RES: [oracle_br] Subtração entre datas



O que o trunc antes do date faz???



De: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
[mailto:oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br ] 
Em nome de FERNANDES Marco A SOFTTEK
Enviada em: Wednesday, April 18, 2007 10:34 AM
Para: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br 
Assunto: RE: [oracle_br] Subtração entre datas

GAS,

basta vc usar subtração normal das datas que a resposta se dará em dias.

select trunc(sysdate) - to_date('15/04/2007','dd/mm/') from dual

abraço,
Marco. 



From: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
mailto:oracle_br%40yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br 
mailto:oracle_br%40yahoogrupos.com.br  
mailto:oracle_br%40yahoogrupos.com.br ] On Behalf Of PUB: G.A.S
Sent: quarta-feira, 18 de abril de 2007 10:21
To: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
mailto:oracle_br%40yahoogrupos.com.br 
Subject: [oracle_br] Subtração entre datas

Olá pessoal, tudo bem?

Estou fazendo uma procedure e preciso ver o intervalo de dias entre um
determinado campo date com a data atual. Exemplo:

Tabela_A

Nome_A Varcha2(20),
Data_de_criação Date.

Tenho que ver se a data atual - data_de_criação = 90 dias.

Alguém pode me dar um help com isso?

Abraços.

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

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

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



 


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



RES: [oracle_br] Off-Topic Informação sobre curso

2007-04-19 Por tôpico Ricardo
Thiago, 
 
Eu fiz o curso de Oracle lá, completo.
 
O curso em si e bom, o material e ate legal, mas a administracao da escola e
um LIXO !
 
Completamente HORRIVEL !!!
 
Os cursos la não tem data prevista, voce vai fazer conforme aparece, isso
pode ser de mes em mes ou pode ser de 6 em 6 meses!
 
Sem contar que voce tem um limite de tempo para fazer o curso, 14 meses.
 
Agora fazendo um curso a cade 6 meses voce NUNCA vai concluir os 10 modulos.
 
E a escola esta pouco se lixando para voce, não te ligam avisando se tem
curso, quando abre 1, no mesmo dia ja lota. E um completo CAOS!
 
Eu te aconselho a gastar uma grana e fazer no IBTA ou na Oracle mesmo.

  _  

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Thiago Menon
Enviada em: quarta-feira, 18 de abril de 2007 15:26
Para: Oracle Grupo
Assunto: [oracle_br] Off-Topic Informação sobre curso



Olá,

Gostaria de saber se alguem da lista ja fez curso de Administração de 
Banco de Dados Oracle na escola Tekno ?

O q achou o que ja ouviram falar ?

desculpe-me pelo tópico OFF.

Thiago


 


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



Res: RES: [oracle_br] Subtração entre datas

2007-04-19 Por tôpico Ricardo Francisco
select sysdate from dual  --- 19/4/2007 14:50:30

select trunc(sysdate) from dual ---19/4/2007

Att.
Ricardo
- Mensagem original 
De: Elias Magalhães da Paixão Junior [EMAIL PROTECTED]
Para: oracle_br@yahoogrupos.com.br
Enviadas: Quarta-feira, 18 de Abril de 2007 12:06:08
Assunto: RES: [oracle_br] Subtração entre datas









  



O que o trunc antes do date faz???



 _ _ __



De: [EMAIL PROTECTED] os.com.br [mailto:[EMAIL PROTECTED] os.com.br] Em nome de 
FERNANDES Marco A SOFTTEK

Enviada em: Wednesday, April 18, 2007 10:34 AM

Para: [EMAIL PROTECTED] os.com.br

Assunto: RE: [oracle_br] Subtração entre datas



GAS,



basta vc usar subtração normal das datas que a resposta se dará em dias.



select trunc(sysdate) - to_date('15/ 04/2007', 'dd/mm/' ) from dual



abraço,

Marco. 



 _ _ __



From: [EMAIL PROTECTED] os.com.br mailto:oracle_ br%40yahoogrupos .com.br  
[mailto:[EMAIL PROTECTED] os.com.br mailto:oracle_ br%40yahoogrupos .com.br ] 
On Behalf Of PUB: G.A.S

Sent: quarta-feira, 18 de abril de 2007 10:21

To: [EMAIL PROTECTED] os.com.br mailto:oracle_ br%40yahoogrupos .com.br 

Subject: [oracle_br] Subtração entre datas



Olá pessoal, tudo bem?



Estou fazendo uma procedure e preciso ver o intervalo de dias entre um

determinado campo date com a data atual. Exemplo:



Tabela_A



Nome_A Varcha2(20),

Data_de_criaçã o Date.



Tenho que ver se a data atual - data_de_criaçã o = 90 dias.



Alguém pode me dar um help com isso?



Abraços.



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



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



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






  







!--

#ygrp-mlmsg {font-size:13px;font-family:arial, helvetica, clean, sans-serif;}
#ygrp-mlmsg table {font-size:inherit;font:100%;}
#ygrp-mlmsg select, input, textarea {font:99% arial, helvetica, clean, 
sans-serif;}
#ygrp-mlmsg pre, code {font:115% monospace;}
#ygrp-mlmsg * {line-height:1.22em;}
#ygrp-text{
font-family:Georgia;
}
#ygrp-text p{
margin:0 0 1em 0;}
#ygrp-tpmsgs{
font-family:Arial;
clear:both;}
#ygrp-vitnav{
padding-top:10px;font-family:Verdana;font-size:77%;margin:0;}
#ygrp-vitnav a{
padding:0 1px;}
#ygrp-actbar{
clear:both;margin:25px 0;white-space:nowrap;color:#666;text-align:right;}
#ygrp-actbar .left{
float:left;white-space:nowrap;}
.bld{font-weight:bold;}
#ygrp-grft{
font-family:Verdana;font-size:77%;padding:15px 0;}
#ygrp-ft{
font-family:verdana;font-size:77%;border-top:1px solid #666;
padding:5px 0;
}
#ygrp-mlmsg #logo{
padding-bottom:10px;}

#ygrp-vital{
background-color:#e0ecee;margin-bottom:20px;padding:2px 0 8px 8px;}
#ygrp-vital #vithd{
font-size:77%;font-family:Verdana;font-weight:bold;color:#333;text-transform:uppercase;}
#ygrp-vital ul{
padding:0;margin:2px 0;}
#ygrp-vital ul li{
list-style-type:none;clear:both;border:1px solid #e0ecee;
}
#ygrp-vital ul li .ct{
font-weight:bold;color:#ff7900;float:right;width:2em;text-align:right;padding-right:.5em;}
#ygrp-vital ul li .cat{
font-weight:bold;}
#ygrp-vital a {
text-decoration:none;}

#ygrp-vital a:hover{
text-decoration:underline;}

#ygrp-sponsor #hd{
color:#999;font-size:77%;}
#ygrp-sponsor #ov{
padding:6px 13px;background-color:#e0ecee;margin-bottom:20px;}
#ygrp-sponsor #ov ul{
padding:0 0 0 8px;margin:0;}
#ygrp-sponsor #ov li{
list-style-type:square;padding:6px 0;font-size:77%;}
#ygrp-sponsor #ov li a{
text-decoration:none;font-size:130%;}
#ygrp-sponsor #nc {
background-color:#eee;margin-bottom:20px;padding:0 8px;}
#ygrp-sponsor .ad{
padding:8px 0;}
#ygrp-sponsor .ad #hd1{
font-family:Arial;font-weight:bold;color:#628c2a;font-size:100%;line-height:122%;}
#ygrp-sponsor .ad a{
text-decoration:none;}
#ygrp-sponsor .ad a:hover{
text-decoration:underline;}
#ygrp-sponsor .ad p{
margin:0;}
o {font-size:0;}
.MsoNormal {
margin:0 0 0 0;}
#ygrp-text tt{
font-size:120%;}
blockquote{margin:0 0 0 4px;}
.replbq {margin:4;}
--







__
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 

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



[oracle_br] caracteres sem acento

2007-04-19 Por tôpico Rafael Alexandre Schmitt
Olá,

Preciso escrever uma rotina para não permitir a digitação de caracteres com 
acento em um text item no forms 6.

Alguém tem alguma idéia de como posso fazer isso?

Obrigado,

Rafael.


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



[oracle_br] Re: caracteres sem acento

2007-04-19 Por tôpico jlchiappa
Não permitir a digitação é beeem difícil, já que o Forms não tem uma 
trigger que dispare a cada tecla digitada, MAS após a digitação, 
validar pra ver se há caracteres especiais/acentuados é beeem fácil, 
seria algo tipo : trigger when-validate-item, vc faz :

if :itememquestao  convert(:itememquestao, 
argsconvertendopraUS7ASCII) then
   existem caracteres acentuados, faça algo

ou ainda

if :itememquestao  translate
(:itememquestao, 'listadecharsacentuados') then
   existem caracteres acentuados, faça algo

[]s

 Chiappa
--- Em oracle_br@yahoogrupos.com.br, Rafael Alexandre Schmitt 
[EMAIL PROTECTED] escreveu

 Olá,
 
 Preciso escrever uma rotina para não permitir a digitação de 
caracteres com acento em um text item no forms 6.
 
 Alguém tem alguma idéia de como posso fazer isso?
 
 Obrigado,
 
 Rafael.
 
 
 [As partes desta mensagem que não continham texto foram removidas]





[oracle_br] tablespace

2007-04-19 Por tôpico Alessandro Damo
Boa tarde a todos,

Gostaria de saber como eu faco para mudar todos os segmentos de uma 
tablespace para outra tablespace.

Executando somente uma vez a query, sem ter que mover a tablespace de 
cada tabela uma a uma.


Obrigado a Todos

Alessandro.



[oracle_br] ORDER BY em coluna alfanumérica

2007-04-19 Por tôpico raposao
Boa tarde a todos.

Uma vez vi nesse grupo um exemplo de uma query onde o ORDER BY numa 
coluna alfanumérica diferenciava números de palavras. Por exemplo:

ORDER BY normal:

1A
11A
111A
2A
22A
222A

ORDER BY que eu vi:
1A
2A
11A
22A
111A
222A

Caso alguém tenha esse exemplo, poderia me enviar, por favor?

Muito obrigado.



[oracle_br] Analista de Suporte - Foco em Banco de Dados Oracle

2007-04-19 Por tôpico leonmcar
Empresa brasileira especializada no desenvolvimento de soluções para
Operadoras de Telefonia está em busca de Profissional  com grande
potencial de aprendizagem para a área de Suporte da empresa.
 
É imprescindível residir na grande Florianópolis por no mínimo 02 meses.
 
Requisitos:
Conhecimento avançado em banco de dados Oracle 9; 
Bons conhecimentos em  sistema operacional  Linux; 
Domínio de estruturas e configurações de rede; 
Terceiro Grau Completo ou cursando; 
Experiência de 1 ano  em Suporte; 
Disponibilidade para viagens.
 
As atividades de Suporte Compreendem: 
 
Atendimento a Operadoras de telecom, com profissionais altamente
especializados nas áreas de redes, telecomunicações e banco de dados; 
Análise crítica de problemas, propondo soluções inovadoras para
rotinas de banco de dados; atendimento as solicitações, dominando o
funcionamento sistêmico da plataforma e regras de negócio; 
Criação de rotinas automatizadas para operação e suporte do sistema; 
Domínio das rotinas de manutenção do banco de dados.
Não respondam diretamente na lista enviem o curriculum para 
[EMAIL PROTECTED], com este mesmo assunto. A vaga é válida até 
24/04.



[oracle_br] Apostila de PL/SQL

2007-04-19 Por tôpico Anderson bisarria
Oi pessoal alguem conhece uma apostila boa e de Gratis, rsrs de PL/SQL estou
procurando e nao acho na net, se alguem puder me ajudar ficarei grato,
atenciosamente agradeço desde ja. Obrigado


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



Re: [oracle_br] 1/2 Off - Média de valores contrat o consultoria DBA

2007-04-19 Por tôpico Fábio Gibon - Comex System
É PJ, não é o que pagam para o DBA e sim o que cobram dos clientes...ok?

sds
Gibon
  - Original Message - 
  From: Elias Magalhães da Paixão Junior 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Wednesday, April 18, 2007 4:21 PM
  Subject: RES: [oracle_br] 1/2 Off - Média de valores contrato consultoria DBA


  PJ ou CLT?

  Elias Magalhães da Paixão Junior

  ___

  Tribunal de Justiça do Estado do Rio de Janeiro 

  DGTEC-DPROD-DIBDA - Divisão de Banco de Dados 
  Tel.: (0XX21) 3133.3417

  

  De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de gibonbr
  Enviada em: Wednesday, April 18, 2007 4:17 PM
  Para: oracle_br@yahoogrupos.com.br
  Assunto: [oracle_br] 1/2 Off - Média de valores contrato consultoria DBA

  Galera,
  poderiam me informar qual a média de valores $$$ praticados 
  pelas empresas de Consultoria para o serviço de DBA? (tipo qual o 
  valor mês por x horas)

  sds

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



   

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



[oracle_br] Dicas para Certificacao Oracle 10g

2007-04-19 Por tôpico vaniasuterio


Gostaria de informacao como proceder para fazer a certificacao oracle 
10g, ja estou matriculado em um partener da Oracle.

mas estou com a seguinte duvida :

Preciso fazer primeiramente os exames para OCA para depois fazer para 
OCP pou posso ire diretor para OCA ?

E´valido fazer um curso em um partner da Oracle ?





[oracle_br] Informação

2007-04-19 Por tôpico Larissa Gadelha
Boa Tarde,
Pessoal

to precisandp de uma ajuda no que diz respeito a
descrição dos produtos:
- Label Security;
-Advanced Security;
-Database Vault;
-Diagnostick Pack;
-Tuning Pack;
-Change Management Pack;
-Configuration Management Pack;
Como faço para ter a descrição de cada um, pode ser
pelo portal da oracle? ou vc(s) teria(m) alguma
apresentação ou apostila?, aguardo sua resposta.Desde
ja,agradeço a sua atenção.sem mais para o momento.
Att,
Larissa

__
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 


Re: [oracle_br] Informação

2007-04-19 Por tôpico Gustavo Venturini de Lima
Olá Larissa.
Esses são todos ad-ons ou pacotes de extensão da Oracle.
O ideal serial procurar nas documentações Oracle (Library / OTN / Tahiti /
Metalink) mais informações sobre estes pacotes... Dessa forma terás uma
documentação embasada e atualizada.

Att.


Em 19/04/07, Larissa Gadelha [EMAIL PROTECTED] escreveu:

   Boa Tarde,
 Pessoal

 to precisandp de uma ajuda no que diz respeito a
 descrição dos produtos:
 - Label Security;
 -Advanced Security;
 -Database Vault;
 -Diagnostick Pack;
 -Tuning Pack;
 -Change Management Pack;
 -Configuration Management Pack;
 Como faço para ter a descrição de cada um, pode ser
 pelo portal da oracle? ou vc(s) teria(m) alguma
 apresentação ou apostila?, aguardo sua resposta.Desde
 ja,agradeço a sua atenção.sem mais para o momento.
 Att,
 Larissa

 __
 Fale com seus amigos de graça com o novo Yahoo! Messenger
 http://br.messenger.yahoo.com/
  



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



Re: [oracle_br] ORDER BY em coluna alfanumérica

2007-04-19 Por tôpico Marcio Portes
Corte os alphas da string e a transforme em numero!

ops$marcio:LX10G select x from t order by 1;

X
--
111A
11A
1A
222A
22A
2A

6 rows selected.

ops$marcio:LX10G select x from t order by to_number(translate(x,'ABC...','
'));

X
--
1A
2A
11A
22A
111A
222A

6 rows selected.



On 4/19/07, raposao [EMAIL PROTECTED] wrote:

   Boa tarde a todos.

 Uma vez vi nesse grupo um exemplo de uma query onde o ORDER BY numa
 coluna alfanumérica diferenciava números de palavras. Por exemplo:

 ORDER BY normal:

 1A
 11A
 111A
 2A
 22A
 222A

 ORDER BY que eu vi:
 1A
 2A
 11A
 22A
 111A
 222A

 Caso alguém tenha esse exemplo, poderia me enviar, por favor?

 Muito obrigado.

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] tablespace

2007-04-19 Por tôpico Marcio Portes
A mesma idéia em
http://mportes.blogspot.com/2006/05/sql-dinmico.html

basta fazer algo dinamico.

select 'alter table '|| table_name ||' move tablespace ...;' from
user_tables;


On 4/19/07, Alessandro Damo [EMAIL PROTECTED] wrote:

   Boa tarde a todos,

 Gostaria de saber como eu faco para mudar todos os segmentos de uma
 tablespace para outra tablespace.

 Executando somente uma vez a query, sem ter que mover a tablespace de
 cada tabela uma a uma.

 Obrigado a Todos

 Alessandro.

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Ajuda com select

2007-04-19 Por tôpico Marcio Portes
Leandro, tudo que voce precisa é:

insert into teste (id, mensagem ) select rownum, nome from grupo;


On 4/19/07, Leandro Concon [EMAIL PROTECTED] wrote:

   Senhores, bom dia!

 Estou precisando recuperar o valor retornado do select e sete-lo em uma
 variavel local VARCHAR2.
 Valor retornado será utilizado para inserir em outra campo de outra
 tabela.

 Abaixo um exemplo de como seria
 DECLARE
 var_mensagem VARCHAR2(2000);
 BEGIN

 SELECT DISTINCT 'TESTE' || GRUPO.NOME
 INTO var_mensagem
 FROM GRUPO;

 DBMS_OUTPUT.PUT_LINE(var_mensagem);

 INSERT TESTE (ID,MENSAGEM) VALUES (1,var_mensagem);

 END;

 Obrigado.

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Capturar ID da sessão

2007-04-19 Por tôpico Marcio Portes
ops$marcio:LX92 select sid, serial# from v$session where audsid =
userenv('sessionid');

  SID   SERIAL#
- -
   11 5

1 row selected.



On 4/19/07, Carlos Maurilio Silva [EMAIL PROTECTED] wrote:

   Bom dia,

 Numa aplicação, gostaria de criar uma tabela temporária e que nela tivesse
 o ID (serial#, sid) como complemento do nome desta tabela.
 Como eu faço pra conseguir pegar o sid e serial# da minha sessão corrente,
 uma vez que posso estar com mais de uma sessão aberta.
 Oracle9i Enterprise Edition Release 9.2.0.3.0

 Obrigado,

 Carlim

 __
 Fale com seus amigos de graça com o novo Yahoo! Messenger
 http://br.messenger.yahoo.com/

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

  




-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



Re: [oracle_br] Re: CBO e RBO

2007-04-19 Por tôpico Marcio Portes
Deixa eu dar um pitaco aqui.
Se em uma query de 10 tabelas, em modo choose, uma delas possuir
estatísticas, o otimizador usa estatísticas default para as demais tabelas e
vai, provavelmente, eleger um plano pouco apurado.

ops$marcio:LX92 create table t1 as select * from all_objects;

Table created.

ops$marcio:LX92 create table t2 as select * from all_objects;

Table created.

ops$marcio:LX92 create table t3 as select * from all_objects;

Table created.

ops$marcio:LX92 create unique index t3_idx on t3 ( object_id );

Index created.

ops$marcio:LX92 create unique index t2_idx on t2 ( object_id );

Index created.

ops$marcio:LX92 show parameter optimizer

NAME TYPEVALUE
 ---
--
optimizer_mode   string  CHOOSE

ops$marcio:LX92 begin
  2 dbms_stats.gather_table_stats( user, 'T1' );
  3  end;
  4  /

PL/SQL procedure successfully completed.

Bom, até aqui, 3 tabelas grandinhas 2 índices nas 2 últimas e coleta de
estatísticas na primeira, ou seja, em somente uma tabela.

ops$marcio:LX92 set autotrace on
ops$marcio:LX92 select t3.object_name
  2from t1, t2, t3
  3   where t1.object_id = t2.object_id
  4 and t2.object_id = t3.object_id
  5 and t1.object_id = 100
  6  /

OBJECT_NAME
--
TRUSTED_LIST$

1 row selected.


Execution Plan
--
   0  SELECT STATEMENT Optimizer=CHOOSE (Cost=46 Card=1 Bytes=48)
   10   NESTED LOOPS (Cost=46 Card=1 Bytes=48)
   21 NESTED LOOPS (Cost=2 Card=1 Bytes=43)
   32   TABLE ACCESS (BY INDEX ROWID) OF 'T3' (Cost=2 Card=1
Bytes=30)
   43 INDEX (UNIQUE SCAN) OF 'T3_IDX' (UNIQUE) (Cost=1 Card=1)
   52   INDEX (UNIQUE SCAN) OF 'T2_IDX' (UNIQUE)
   61 TABLE ACCESS (FULL) OF 'T1' (Cost=44 Card=1 Bytes=5)

Reparem no plano de execução, ele mostra (Cost, Card e Bytes para TODAS as
tabelas, ou seja, ele entrou com os valores default de estatística para as
quais ele não conhecia e baseado nisso ele decidiu o plano. Abaixo, vou
excluir as estatísticas da tabela t1 e executar a query novamente.

ops$marcio:LX92 analyze table t1 delete statistics;

Table analyzed.

ops$marcio:LX92 select t3.object_name
  2from t1, t2, t3
  3   where t1.object_id = t2.object_id
  4 and t2.object_id = t3.object_id
  5 and t1.object_id = 100
  6  /

OBJECT_NAME
--
TRUSTED_LIST$

1 row selected.


Execution Plan
--
   0  SELECT STATEMENT Optimizer=CHOOSE
   10   NESTED LOOPS
   21 NESTED LOOPS
   32   TABLE ACCESS (FULL) OF 'T1'
   42   INDEX (UNIQUE SCAN) OF 'T2_IDX' (UNIQUE)
   51 TABLE ACCESS (BY INDEX ROWID) OF 'T3'
   65   INDEX (UNIQUE SCAN) OF 'T3_IDX' (UNIQUE)


Agora sim, RULE puro, nenhuma menção de estatística (Cost, Card e Bytes) foi
apresentada na query.
Espero que isso sane a dúvida. Resumindo, SIM ele escolhe CBO quando pelo
menos UMA tabela envolvida na query esteja com estatística coletada.


On 4/19/07, leandrofff [EMAIL PROTECTED] wrote:

   isso mesmo Andre, essa é a duvida que tenho.
 Pelo que vi o Oracle não realiza coleta das tabelas envolvidas, porem
 plano de execução é alterado. Não é o mesmo que sem estatistica, RULE.

 --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 Andre Santos
 [EMAIL PROTECTED] escreveu
 
  Leandro
 
  Pelo que me lembro de um curso da versão 9i, isso daria um trabalho
 extra ao
  Oracle: ele faria a coleta de estatísticas das tabelas que
 estivessem sem,
  cada vez que executasse a consulta.
 
  Mas nunca fiz testes sobre isso, nem procurei confirmação na
 documentação do
  Oracle. Ok?
 
  Se você encontrar uma confirmação (ou refutação), por favor, compartilhe
  conosco.
 
  [ ]
 
  André
 
 
  Em 19/04/07, leandrofff [EMAIL PROTECTED] escreveu:

  
   de qualquer forma o otimizador será CHOOSE, porem sem
 estatistica ele
   executará como RULE, o que será a mesma coisa que colocar um HINT
   /*+RULE*/ na minha SELECT.
   A minha dúvida é que uma parte das tabelas tem estatistica e outra
   não. O que o Oracle faz?
   coleta estatistica para as demais tabelas envolvidas ou ignora as
   estatisticas e usa o otimizador com RULE?
  
   mesmo assim grato!
  
   --- Em oracle_br@yahoogrupos.com.br 
   oracle_br%40yahoogrupos.com.broracle_br%40yahoog
 rupos.com.br,
   Rodrigo Mufalani mufalani@
   escreveu
   
Tire um trace da sessão onde a query é executada, com isso vai ter
mostrar a informação que vc deseja. Aqui abaixo um exemplo de trace
da instrução select count(*) from dual;
   
ALTER SESSION SET SQL_TRACE = TRUE;
   
SELECT COUNT(*)
FROM dual;
   
ALTER SESSION SET SQL_TRACE = FALSE;
   
   
   
  
  

 

[oracle_br] Problema com locks

2007-04-19 Por tôpico Ulisses\(Yahoo\)
Ola a todos. Estou com um problema que talvez possam me ajudar ou pelo menos
me dar uma luz. 

 

Existe em meu banco uma tabela de eventos. Estes eventos são validados de
tempos em tempos pelo usuário e o processo de validação consiste em fazer a
copia dos registros para uma segunda tabela (entre outras atividades). O
usuário a qualquer momento pode escolher um período (entre 2 horas cheias) e
fazer a validação dos eventos. Pode ocorrer da validação ter sido feita de
forma errada, entao o usuário tem que validar novamente. Este processo apaga
os registros dentro do período selecionado da segunda tabela e faz a copia
novamente. Ele não pode fazer a validação de 2 periodos que se interceptam. 

 

Acontece que existem varias instancias deste software rodando
simultaneamente, ou seja, enquanto um usuário esta validando o período de 01
hora as 02, outro poderá validar o período de 02 as 03 horas e/ou estara
revalidando estes periodos.  Com este cenário eu tenho 2 problemas:

 

1- Se 2 usuarios estiverem re-validando o mesmo período. Neste caso sei que
enquanto uma seção apagou os dados, quando a outra tentar apagar de novo vai
gerar um erro de lock (deadlock - ORA-00060). Este caso imagino que não
tenha solução e a interface tenha que tratar, não deixando o segundo usuário
fazer isso ate que o primeiro termine a operacao. Correto ? Tem como
configurar o valor deste lock para infinito (para o segundo aguardar a
liberacao do primeiro)?

 

2- Se 2 usuarios estiverem re-validando períodos diferentes.Este caso é que
esta me intrigando. Pois em meu banco de teste, o sistema funciona
normalmente, sem o oracle dar lock na tabela toda. Mas no banco de produção
parece que o Oracle esta dando lock na tabela toda e retorna sempre a
mensagem de deadlock - ORA-00060. Em pesquisas encontrei que existe formas
de mudar a forma de lock (tabela toda ou apenas a parte que se esta
alterando). Alguém saberia me dizer qual é o parametro que eu devo ajustar
para isso acontecer ? Existe alguma outra forma de resolver este problema
sem impedir os usuários de realizem as tarefas ?

 

Desde já agradeço

 

Ulisses



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