Re: RES: Res: [oracle_br] Corrupção de dados

2011-04-26 Por tôpico Marcelo Cauduro
Você menciona que os selects retornam ok, então você consegue dar um:

  CREATE TABLE TESTE AS
 SELECT * FROM XX;

2011/4/26 Carlos Alfredo M. Menezes carlos.mene...@usinacoruripe.com.br



 Não colega, tentativa de export também dá o mesmo erro. Mas tentei vários
 SQL´s nesta mesma tabela e todos retornam sem problemas. Curioso.

 Att,

 Carlos Alfredo M. de Menezes
 Analista de Suporte Sr.
 (82) 3217-2828 / 9921-0603



 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
 nome de David Ricardo
 Enviada em: terça-feira, 26 de abril de 2011 11:00
 Para: oracle_br@yahoogrupos.com.br
 Assunto: Re: RES: Res: [oracle_br] Corrupção de dados

 Carlos,
 Você consegue exportar essa tabela apenas?

 Caso consiga exporta-la por completo, sugiro que o faça e recrie-a , para
 que ele realoque o objeto em outro segement block.

 Abraço

 Em 26 de abril de 2011 10:52, Carlos Alfredo M. Menezes 
 carlos.mene...@usinacoruripe.com.br escreveu:

 
 
  Caro colega, bom dia.
 
  Obrigado pela dica, tentei fazer o procedimento, mas não estou tendo
  sucesso em fazer a visão v$database_block_corruption ser populada.
  Veja como
  fiz:
 
  sapdtc101:orasm0 2 rman target = /
 
  Recovery Manager: Release 10.2.0.4.0 - Production on Tue Apr 26
  10:19:14
  2011
 
  Copyright (c) 1982, 2007, Oracle. All rights reserved.
 
  connected to target database: SM0 (DBID=1149775909)
 
  RMAN backup validate check logical database;
 
  Starting backup at 26-APR-11
  using target database control file instead of recovery catalog
  allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=125 devtype=DISK
  channel ORA_DISK_1: starting full datafile backupset channel
  ORA_DISK_1: specifying datafile(s) in backupset input datafile
  fno=9 name=/oracle/SM0/sapdata2/sr3_6/sr3.data6
  input datafile fno=00012 name=/oracle/SM0/sapdata2/sr3_9/sr3.data9
  input datafile fno=4 name=/oracle/SM0/sapdata2/sr3_1/sr3.data1
  input datafile fno=6 name=/oracle/SM0/sapdata2/sr3_3/sr3.data3
  input datafile fno=5 name=/oracle/SM0/sapdata2/sr3_2/sr3.data2
  input datafile fno=8 name=/oracle/SM0/sapdata2/sr3_5/sr3.data5
  input datafile fno=7 name=/oracle/SM0/sapdata2/sr3_4/sr3.data4
  input datafile fno=00010 name=/oracle/SM0/sapdata2/sr3_7/sr3.data7
  input datafile fno=00011 name=/oracle/SM0/sapdata2/sr3_8/sr3.data8
  input datafile fno=00023 name=/oracle/SM0/sapdata2/sr3_12/sr3.data12
  input datafile fno=00022 name=/oracle/SM0/sapdata2/sr3_11/sr3.data11
  input datafile fno=00013 name=/oracle/SM0/sapdata2/sr3_10/sr3.data10
  input datafile fno=00014
  name=/oracle/SM0/sapdata3/sr3701_1/sr3701.data1
  input datafile fno=00015
  name=/oracle/SM0/sapdata3/sr3701_2/sr3701.data2
  input datafile fno=00016
  name=/oracle/SM0/sapdata3/sr3701_3/sr3701.data3
  input datafile fno=00017
  name=/oracle/SM0/sapdata3/sr3701_4/sr3701.data4
  input datafile fno=2 name=/oracle/SM0/sapdata1/undo_1/undo.data1
  input datafile fno=00024 name=/oracle/SM0/sapdata2/sr3_13/sr3.data13
  input datafile fno=00019 name=/oracle/SM0/sapdata4/sr3db_1/sr3db.data1
  input datafile fno=00020 name=/oracle/SM0/sapdata4/sr3db_2/sr3db.data2
  input datafile fno=00021 name=/oracle/SM0/sapdata4/sr3db_3/sr3db.data3
  input datafile fno=1
  name=/oracle/SM0/sapdata1/system_1/system.data1
  input datafile fno=3
  name=/oracle/SM0/sapdata1/sysaux_1/sysaux.data1
  input datafile fno=00018
  name=/oracle/SM0/sapdata4/sr3usr_1/sr3usr.data1
  channel ORA_DISK_1: backup set complete, elapsed time: 00:12:26
  channel ORA_DISK_1: starting full datafile backupset channel
  ORA_DISK_1: specifying datafile(s) in backupset including current
  control file in backupset including current SPFILE in backupset
  channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
  Finished backup at 26-APR-11
 
  Após isso, continua sem registrar nenhuma corrupção lógica:
 
  SQL select * from v$database_block_corruption;
 
  no rows selected
 
  Mas se tento fazer o validate na tabela com problemas:
 
  SQL analyze table sapsr3.snap validate structure;
  analyze table sapsr3.snap validate structure
  *
  ERROR at line 1:
  ORA-08103: object no longer exists
 
  Mas alguma sugestão??
 
  Att,
 
 
  Carlos Alfredo M. de Menezes
  Analista de Suporte Sr.
 
 
 
  -Mensagem original-
  De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
  Em nome de David Ricardo Enviada em: terça-feira, 26 de abril de 2011
  09:52
  Para: oracle_br@yahoogrupos.com.br
  Assunto: Re: RES: Res: [oracle_br] Corrupção de dados
 
  Carlos bom dia, tudo bem?
  Já solucionou seu problema?
 
  Caso não tenha solucionado ainda, dê uma passadinha neste endereço, lá
  tem um passo a passo de como usar o BMR via RMAN, talvez isso lhe
  ajude a elucidar algumas coisas.
 
  http://databaseguard.blogspot.com/2009/08/rman-bmr-block-media-recover
  .html
 
  No mais se precisar de ajuda, meu email é drb.rica...@gmail.com
 
  Abraço.
 

Re: [oracle_br] Instância parada

2010-08-16 Por tôpico Marcelo Cauduro
Marcelo, nao eh preciso ter uma instancia para rodar o
  create pfile from spfile;

siga as recomendacoes do ivan do jeito que seu banco esta que vai
funcionar

abs.

2010/8/16 Ivan Ricardo Schuster ivanr...@gmail.com



 Marcelo

 Por padrão, no windows o spfile fica no seguinte caminho:

 ORACLE_HOME/database/spfileSID.ora

 Confirme os valores das variáveis de ambiente ORACLE_SID e ORACLE_HOME. Ex:

 C:\echo %ORACLE_SID%
 orcl

 Verifique se o arquivo SPFILE existe.
 No SQLPLUS use o comando (substitua as variáveis):

 create pfile='c:\temp\pfile.txt' from
 spfile='ORACLE_HOME/database/spfileSID.ora';

 Verifique se o pfile gerado possui algum parametro de cluster, por
 exemplo cluster_database, cluster_database_instances, etc e apague ou
 comente.

 Faça o caminho inverso:

 create spfile from pfile='c:\temp\pfile.txt';

 Tente iniciar o banco normalmente.

 2010/8/16 Marcelo Porto marcelo.po...@ymail.commarcelo.porto%40ymail.com
 :

  No alert não há entrada nenhuma após o shutdown feito ontem a noite, isto
 é,
  nem começar a inicialização do banco sequer ele faz.
 
  Agora a pouco tentei incializar o banco através do ORADIM com este
 comando:
 
  E:\oracle\product\10.2.0\DEDIC\bin\oradim.exe -startup -sid dedic -usrpwd
 *
  -log oradim.log -nocheck 0
 
  E foi regado um outro alert.log mas não no que estava sendo utilizado
 antes
  e com ele surgiu a seguinte entrada:
 
  Dump file e:\oracle\product\10.2.0\dedic\rdbms\trace\dedic_ora_0.trc
  Mon Feb 08 07:48:57 2010
  ORACLE V10.2.0.4.0 - 64bit Production vsnsta=0
  vsnsql=14 vsnxtr=3
  Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit
 Production
  Windows NT Version V5.2 Service Pack 2
  CPU : 8 - type 8664, 2 Physical Cores
  Process Affinity: 0x
  Memory (Avail/Total): Ph:15270M/16378M, Ph+PgF:17394M/17814M
  Instance name: dedic
 
  Redo thread mounted by this instance: 0 none
 
  Oracle process number: 0
 
  Windows thread id: 2252, image: ORACLE.EXE
 
 
  *** 2010-02-08 07:48:57.468
  = begin preloading .sym files
  = end   preloading .sym files
  Dump file e:\oracle\product\10.2.0\dedic\rdbms\trace\dedic_ora_0.trc
  Mon Feb 08 08:09:26 2010
  ORACLE V10.2.0.4.0 - 64bit Production vsnsta=0
  vsnsql=14 vsnxtr=3
  Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit
 Production
  Windows NT Version V5.2 Service Pack 2
  CPU : 8 - type 8664, 2 Physical Cores
  Process Affinity: 0x
  Memory (Avail/Total): Ph:15168M/16378M, Ph+PgF:17266M/17814M
  Instance name: dedic
 
  Redo thread mounted by this instance: 0 none
 
  Oracle process number: 0
 
  Windows thread id: 560, image: ORACLE.EXE
 
 
  *** 2010-02-08 08:09:26.515
  = begin preloading .sym files
  = end   preloading .sym files
  Dump file e:\oracle\product\10.2.0\dedic\rdbms\trace\dedic_ora_0.trc
  Tue Feb 09 09:57:12 2010
  ORACLE V10.2.0.4.0 - 64bit Production vsnsta=0
  vsnsql=14 vsnxtr=3
  Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit
 Production
  Windows NT Version V5.2 Service Pack 2
  CPU : 8 - type 8664, 2 Physical Cores
  Process Affinity: 0x
  Memory (Avail/Total): Ph:15583M/16378M, Ph+PgF:17635M/17814M
  Instance name: dedic
 
  Redo thread mounted by this instance: 0 none
 
  Oracle process number: 0
 
  Windows thread id: 1560, image: ORACLE.EXE
 
 
  *** 2010-02-09 09:57:12.796
  = begin preloading .sym files
  = end   preloading .sym files
  Dump file e:\oracle\product\10.2.0\dedic\rdbms\trace\dedic_ora_0.trc
  Fri Feb 12 12:00:50 2010
  ORACLE V10.2.0.4.0 - 64bit Production vsnsta=0
  vsnsql=14 vsnxtr=3
  Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit
 Production
  Windows NT Version V5.2 Service Pack 2
  CPU : 8 - type 8664, 2 Physical Cores
  Process Affinity: 0x
  Memory (Avail/Total): Ph:15539M/16378M, Ph+PgF:17590M/17814M
  Instance name: dedic
 
  Redo thread mounted by this instance: 0 none
 
  Oracle process number: 0
 
  Windows thread id: 1880, image: ORACLE.EXE
 
 
  *** 2010-02-12 12:00:50.796
  = begin preloading .sym files
  = end   preloading .sym files
  Dump file e:\oracle\product\10.2.0\dedic\rdbms\trace\dedic_ora_0.trc
  Fri Feb 12 12:22:44 2010
  ORACLE V10.2.0.4.0 - 64bit Production vsnsta=0
  vsnsql=14 vsnxtr=3
  Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit
 Production
  Windows NT Version V5.2 Service Pack 2
  CPU : 8 - type 8664, 2 Physical Cores
  Process Affinity: 0x
  Memory (Avail/Total): Ph:15524M/16378M, Ph+PgF:17580M/17814M
  Instance name: dedic
 
  Redo thread mounted by this instance: 0 none
 
  Oracle process number: 0
 
  Windows thread id: 1992, image: ORACLE.EXE
 
 
  *** 2010-02-12 12:22:44.890
  = begin preloading .sym files
  = end   preloading .sym files
  Dump file e:\oracle\product\10.2.0\dedic\rdbms\trace\dedic_ora_0.trc

Re: [oracle_br] Oracle Hint

2010-04-15 Por tôpico Marcelo Cauduro
Complementando o que o amigo Raul disse, a sua sintaxe esta errada, ou seja,
o Oracle desconsidera esse HINT, para ele é apenas um comentario... e sendo
que você tem histogramas coletados, ele escolhe o uso de indice de acordo
com o caso, por isso a situação muda de acordo com o valor do
cd_situacao_arquivo... não tem nada a ver com o hint, que no seu caso nao
existe...

para forcar o uso de indice sempre nessa querie, apenas mude a sua sintaxe ,
naum existe o hint INDEX_RS, mas sim INDEX

2010/4/15 Raul Francisco Costa F. de Andrade, DBA raulf...@gmail.com

 Caro amigo
 A tabela citada deve ter histogramas coletados provavelmente, sendo assim o
 número 1 deve ter poucas vezes na tabela, já o número 3 deve ter mais.

 Sendo assim, através do histograma o otimizador acredita ser melhor (e
 provavelmente será) ler a tabela toda ao invés de utilizar o índice.
 A sintaxe da sua hint está meio estranha também!

 tente fazer:


 select /*+ index(owner.tabela index_name) */ from owner.tabela;







 Em 15 de abril de 2010 13:54, Eduardo eduardo.pa...@gmail.com escreveu:

 
 
  Senhores,
 
  eu tenho um select que possui 2 custos mudando um parametro no where:
 
  Gostaria de saber porque ele está usando o index somente quando o
  cd_situacao_arquivo é 1, já tentei usar o hint para ele usar o indice
  mas ele teima em fazer full table scan.
  Tem solução isso?
 
 
 
 ###
 
  set autotrace traceonly explain;
 
  SELECT /* +INDEX_rs IX_FK_ARQ_DIV_SIT_ARQ */ ad.sg_ue, ad.cd_arquivo
  FROM arquivo_divulgacao ad
  WHERE ad.cd_situacao_arquivo = 3;
 
  --
  Execution Plan
  --
  SELECT STATEMENT Optimizer Mode=ALL_ROWS (Cost=11 Card=4 K
  Bytes=104 K)
  1 PARTITION LIST SINGLE (Cost=11 Card=4 K Bytes=104 K)
  2 1 TABLE ACCESS FULL ADMELEGERAL.ARQUIVO_DIVULGACAO
  (Cost=11 Card=4 K Bytes=104 K)
 
 
 
 ###
 
  set autotrace traceonly explain;
 
  SELECT /* +INDEX_rs IX_FK_ARQ_DIV_SIT_ARQ */ ad.sg_ue, ad.cd_arquivo
  FROM arquivo_divulgacao ad
  WHERE ad.cd_situacao_arquivo = 1;
 
  Execution Plan
  --
  SELECT STATEMENT Optimizer Mode=ALL_ROWS (Cost=2 Card=1 Bytes=22)
  1 TABLE ACCESS BY GLOBAL INDEX ROWID
  ADMELEGERAL.ARQUIVO_DIVULGACAO (Cost=2 Card=1 Bytes=22)
  2 1 INDEX RANGE SCAN ADMELEGERAL.IX_FK_ARQ_DIV_SIT_ARQ
  (Cost=1 Card=1)
 
  --
  --
 
  Eduardo
 
 



 --
 --
 Raul Francisco da Costa Ferreira de Andrade
 DBA - OCA - Oracle Certified Associate
 COBIT Foundation 4.1
 Fone: (41)8855-8874 Brt
 email: raulf...@gmail.com
 Skype: raul.andrade
 www.clickdba.com
 Não somos seres humanos passando por uma experiência espiritual
 Somos seres espirituais passando por uma experiência humana.


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



 


 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
 inteira responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/

 --
 Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure
 » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
 http://www.oraclebr.com.br/
 
 Links do Yahoo! Grupos





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



[oracle_br] Invitation to connect on LinkedIn

2010-03-12 Por tôpico MARCELO CAUDURO
LinkedIn
MARCELO CAUDURO requested to add you as a connection on LinkedIn:
--

Carmine Andre,

I'd like to add you to my professional network on LinkedIn.

- MARCELO

Accept invitation from MARCELO CAUDURO
http://www.linkedin.com/e/hWdLbEQovS9WxUla2SAnQ1WHcdNiQNfnEPkab4_YW6T/blk/I1883254811_2/1BpC5vrmRLoRZcjkkZt5YCpnlOt3RApnhMpmdzgmhxrSNBszYOnP4Ne3gRczcUe359bTljsz5IrQBqbPoPdjAPd38Qcj4LrCBxbOYWrSlI/EML_comm_afe/

View invitation from MARCELO CAUDURO
http://www.linkedin.com/e/hWdLbEQovS9WxUla2SAnQ1WHcdNiQNfnEPkab4_YW6T/blk/I1883254811_2/39vcj4Ud3kOcPwUckALqnpPbOYWrSlI/svi/
 

--
DID YOU KNOW you can use your LinkedIn profile as your website? Select a vanity 
URL and then promote this address on your business cards, email signatures, 
website, etc
http://www.linkedin.com/e/ewp/inv-21/


 
--
(c) 2010, LinkedIn Corporation

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



[oracle_br] Invitation to connect on LinkedIn

2010-03-12 Por tôpico MARCELO CAUDURO
LinkedIn


   
I'd like to add you to my professional network on LinkedIn.

- MARCELO

MARCELO CAUDURO
DBA at Inmetrics 
Campinas Area, Brazil

Confirm that you know MARCELO CAUDURO
https://www.linkedin.com/e/isd/1142455014/lVhwPKw7/


 
--
(c) 2010, LinkedIn Corporation

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



[oracle_br] Invitation to connect on LinkedIn

2010-03-12 Por tôpico MARCELO CAUDURO
LinkedIn


   
I'd like to add you to my professional network on LinkedIn.

- MARCELO

MARCELO CAUDURO
DBA at Inmetrics 
Campinas Area, Brazil

Confirm that you know MARCELO CAUDURO
https://www.linkedin.com/e/isd/1142455009/2ldvWUWm/


 
--
(c) 2010, LinkedIn Corporation

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



[oracle_br] Re: Permitir que outro usuário veja seu job ao fazer select na all_jobs e o execute

2006-10-09 Por tôpico Marcelo Cauduro
up.

On 10/8/06, Marcelo Cauduro [EMAIL PROTECTED] wrote:

 Alguem ?

 On 10/6/06, Marcelo Cauduro [EMAIL PROTECTED] wrote:
 
  Pessoal,
 
  Eu criei uma procedure com um usuário X.
 
connect system/manager;
create user X identified by X;
grant connect,resource,create public synonym to X;
create user Y identified by Y;
grant connect,resource to Y;
connect X/X;
create or replace procedure teste123 as  a number;  begin   a:=1;
  end;
/
 
  Depois disso criei com o mesmo usuário um job que chama essa procedure.
 
connect X/X;
declare
i binary_integer;
begin
dbms_job.submit(job = i,what = 'BEGIN teste123; END;',next_date =
  (trunc(sysdate,'hh24')+12/24),interval = 'sysdate+1/24');
end;
/
commit
/
 
  quando eu dou um select na user_jobs com esse usuário ele retorna
 
connect X/X;
select * from user_jobs;
 
   JOB LOG_USER
  PRIV_USER  SCHEMA_USERLAST_DATE
  LAST_SEC THIS_DATE   THIS_SEC NEXT_DATE   NEXT_SEC TOTAL_TIME BROKEN
  INTERVAL
  FAILURES
  WHAT
  NLS_ENV
  MISC_ENV   INSTANCE
-- --
  -- -- ---
   ---  ---  -- --
  
  --
  
  
   --
   228 X
  X  X  6/10/2006 1
  16:43:25  6/10/2006 1 17:43:25  0 N
  sysdate+1/24
  0 BEGIN teste123;
  END;
  NLS_LANGUAGE='AMERICAN' NLS_TERRITORY='AMERICA' NLS_CURRENCY='$'
  NLS_ISO_CURRENC
  010200020100  0
 
 
  quando eu dou um select na all_jobs com esse usuário ele retorna
 
connect X/X
select * from all_jobs;
 
  JOB LOG_USER
  PRIV_USER  SCHEMA_USERLAST_DATE
  LAST_SEC THIS_DATE   THIS_SEC NEXT_DATE   NEXT_SEC TOTAL_TIME BROKEN
  INTERVAL
  FAILURES
  WHAT
  NLS_ENV
  MISC_ENV   INSTANCE
-- --
  -- -- ---
   ---  ---  -- --
  
  --
  
  
   --
   228 X
  X  X  6/10/2006 1
  16:43:25  6/10/2006 1 17:43:25  0 N
  sysdate+1/24
  0 BEGIN teste123;
  END;
  NLS_LANGUAGE='AMERICAN' NLS_TERRITORY='AMERICA' NLS_CURRENCY='$'
  NLS_ISO_CURRENC
  010200020100  0
 
 
  Mas eu preciso que um usuário Y execute esse job.
  Assim, com esse usuário Y eu dou um select em all_jobs, mas a
  consulta não retorna nada.
 
connect Y/Y;
select * from all_jobs;
 
 JOB LOG_USER   PRIV_USER
  SCHEMA_USERLAST_DATE   LAST_SEC THIS_DATE   THIS_SEC
  NEXT_DATE   NEXT_SEC TOTAL_TIME BROKEN
  INTERVAL
  FAILURES
  WHAT
  NLS_ENV
  MISC_ENV   INSTANCE
  -- -- --
  -- ---  --- 
  ---  -- --
  
  --
  
  
   --
 
 
  Com o usuário X, crio um sinonimo público para a procedure chamado pelo
  Job.
 
connect X/X;
create public synonym teste123 for teste123;
 
  Dou grant dessa procedure para Y.
 
connect X/X;
grant execute on teste123 to Y;
 
  Mas , como o usuário Y, não consigo ver nada ainda na all_jobs.
 
connect Y/Y
select * from all_jobs;
 
 JOB LOG_USER   PRIV_USER
  SCHEMA_USERLAST_DATE   LAST_SEC THIS_DATE   THIS_SEC
  NEXT_DATE   NEXT_SEC TOTAL_TIME BROKEN
  INTERVAL
  FAILURES
  WHAT
  NLS_ENV
  MISC_ENV

[oracle_br] Permitir que outro usuário veja seu job ao fazer select na all_jobs e o execute

2006-10-06 Por tôpico Marcelo Cauduro
Pessoal,

Eu criei uma procedure com um usuário X.

  connect system/manager;
  create user X identified by X;
  grant connect,resource,create public synonym to X;
  create user Y identified by Y;
  grant connect,resource to Y;
  connect X/X;
  create or replace procedure teste123 as  a number;  begin   a:=1;   end;
  /

Depois disso criei com o mesmo usuário um job que chama essa procedure.

  connect X/X;
  declare
  i binary_integer;
  begin
  dbms_job.submit(job = i,what = 'BEGIN teste123; END;',next_date =
(trunc(sysdate,'hh24')+12/24),interval = 'sysdate+1/24');
  end;
  /
  commit
  /

quando eu dou um select na user_jobs com esse usuário ele retorna

  connect X/X;
  select * from user_jobs;

 JOB LOG_USER   PRIV_USER
SCHEMA_USERLAST_DATE   LAST_SEC THIS_DATE   THIS_SEC
NEXT_DATE   NEXT_SEC TOTAL_TIME BROKEN
INTERVAL
FAILURES
WHAT
NLS_ENV
MISC_ENV   INSTANCE
  -- -- --
-- ---  --- 
---  -- --

--


 --
 228 X  X
X  6/10/2006 1 16:43:25
6/10/2006 1 17:43:25  0 N
sysdate+1/24
0 BEGIN teste123;
END;
NLS_LANGUAGE='AMERICAN' NLS_TERRITORY='AMERICA' NLS_CURRENCY='$'
NLS_ISO_CURRENC
010200020100  0


quando eu dou um select na all_jobs com esse usuário ele retorna

  connect X/X
  select * from all_jobs;

JOB LOG_USER   PRIV_USER
SCHEMA_USERLAST_DATE   LAST_SEC THIS_DATE   THIS_SEC
NEXT_DATE   NEXT_SEC TOTAL_TIME BROKEN
INTERVAL
FAILURES
WHAT
NLS_ENV
MISC_ENV   INSTANCE
  -- -- --
-- ---  --- 
---  -- --

--


 --
 228 X  X
X  6/10/2006 1 16:43:25
6/10/2006 1 17:43:25  0 N
sysdate+1/24
0 BEGIN teste123;
END;
NLS_LANGUAGE='AMERICAN' NLS_TERRITORY='AMERICA' NLS_CURRENCY='$'
NLS_ISO_CURRENC
010200020100  0


Mas eu preciso que um usuário Y execute esse job.
Assim, com esse usuário Y eu dou um select em all_jobs, mas a
consulta não retorna nada.

  connect Y/Y;
  select * from all_jobs;

   JOB LOG_USER   PRIV_USER
SCHEMA_USERLAST_DATE   LAST_SEC THIS_DATE   THIS_SEC
NEXT_DATE   NEXT_SEC TOTAL_TIME BROKEN
INTERVAL
FAILURES
WHAT
NLS_ENV
MISC_ENV   INSTANCE
-- -- --
-- ---  --- 
---  -- --

--


 --


Com o usuário X, crio um sinonimo público para a procedure chamado pelo Job.

  connect X/X;
  create public synonym teste123 for teste123;

Dou grant dessa procedure para Y.

  connect X/X;
  grant execute on teste123 to Y;

Mas , como o usuário Y, não consigo ver nada ainda na all_jobs.

  connect Y/Y
  select * from all_jobs;

   JOB LOG_USER   PRIV_USER
SCHEMA_USERLAST_DATE   LAST_SEC THIS_DATE   THIS_SEC
NEXT_DATE   NEXT_SEC TOTAL_TIME BROKEN
INTERVAL
FAILURES
WHAT
NLS_ENV
MISC_ENV   INSTANCE
-- -- --
-- ---  --- 
---  -- --

--


[oracle_br] Re: Usuario não acessa nada via Pl/Sql mas acessa via Sql/Plus

2006-09-05 Por tôpico Marcelo Cauduro
Alguem ?

On 9/4/06, Marcelo Cauduro [EMAIL PROTECTED] wrote:

 Alguem ?


 On 9/4/06, Marcelo Cauduro [EMAIL PROTECTED] wrote:
 
  Pessoal, tenho um usuario que não acessa nada via pl/sql developer mas
  via sql/plus sim, é muito estranho
  . eu sei que alguem talvez diga : Ah isso é configuracao do
  Developer
 
  mas isso soh acontece em uma instancia.
  e a tabela product_profile esta vazia
 
  Alguem imagina o que possa ser ?
 
 




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



--
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/ 
--__

OPORTUNIDADES DE TRABALHO, VAGAS, EMPREGOS PARA PROFISSIONAIS ORACLE VISITE: 
http://www.oraclebr.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] Re: Usuario não acessa nada via Pl/Sql mas acessa via Sql/Plus

2006-09-05 Por tôpico Marcelo Cauduro
Se eu der role de DBA funciona

On 9/5/06, Marcelo Cauduro [EMAIL PROTECTED] wrote:

 Alguem ?

 On 9/4/06, Marcelo Cauduro [EMAIL PROTECTED] wrote:
 
  Alguem ?
 
 
  On 9/4/06, Marcelo Cauduro [EMAIL PROTECTED]  wrote:
  
   Pessoal, tenho um usuario que não acessa nada via pl/sql developer mas
   via sql/plus sim, é muito estranho
   . eu sei que alguem talvez diga : Ah isso é configuracao do
   Developer
  
   mas isso soh acontece em uma instancia.
   e a tabela product_profile esta vazia
  
   Alguem imagina o que possa ser ?
  
  
 
 



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



--
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/ 
--__

OPORTUNIDADES DE TRABALHO, VAGAS, EMPREGOS PARA PROFISSIONAIS ORACLE VISITE: 
http://www.oraclebr.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] Re: Describe não mostra nada e aplicação centura não acessa objeto - Objeto tem de ser removido e dai ....

2006-09-04 Por tôpico Marcelo Cauduro
up

On 8/16/06, Marcelo Cauduro [EMAIL PROTECTED] wrote:

 Pessoal, estou com um grande problema, aplicação (em centura) não consegue
 acessar algumas procedures especificas da base embora tenha grant para a
 mesma. Quando vci no sqlplus e da-se um describe nela , nào volta nenhum
 parametro. Dai temos de dropar a procedure e cria-la de novo. Dai a
 aplicacao acessa a procedure e o describe retorna os parametros ou
 assinatura.

 Tanto em 8i como 9i.

 Alguem ja se deparou com isso ?



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



--
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/ 
--__

OPORTUNIDADES DE TRABALHO, VAGAS, EMPREGOS PARA PROFISSIONAIS ORACLE VISITE: 
http://www.oraclebr.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] Describe não mostra nada e aplicação centura não acessa objeto - Objeto tem de ser removido e dai ....

2006-08-16 Por tôpico Marcelo Cauduro
Pessoal, estou com um grande problema, aplicação (em centura) não consegue
acessar algumas procedures especificas da base embora tenha grant para a
mesma. Quando vci no sqlplus e da-se um describe nela , nào volta nenhum
parametro. Dai temos de dropar a procedure e cria-la de novo. Dai a
aplicacao acessa a procedure e o describe retorna os parametros ou
assinatura.

Tanto em 8i como 9i.

Alguem ja se deparou com isso ?


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



--
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/ 
--__

OPORTUNIDADES DE TRABALHO, VAGAS, EMPREGOS PARA PROFISSIONAIS ORACLE VISITE: 
http://www.oraclebr.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

 




Re: [oracle_br] Dirty buffers inspected

2006-05-11 Por tôpico Marcelo Cauduro



O que eu queria é o seguinte é conseguir tirar um diagnostico... por
exemplo, tenho uma maquina X , dai eu tenho q primeiro fazer isso e isso ?

Por exemplo, se os Hits de Buffers estiverem baixos eu devo mexer no
DB_CACHE_SIZE

eu queria conseguir generalizar ou saber o que é importante em cada caso
(linux,windows, ata) para conseguir resolver esse problema em qualquer
hardware que seja... nao nesse especifico como uma formula Eu vi
sugestoes na documentacao de alterar o LOG_CHECKPOINT_INTERVAL... mas eu
queria a ajuda de vocês que são mais experientes no assuntos

On 5/10/06, Luis Claudio Arruda Figueiredo [EMAIL PROTECTED]
wrote:

 Marcelo eu acho que seu banco é 9i correto?!
 Mas não temos infos sobre s.o (windows,Linux,Unix)
 formatação do file system, hardware (tipos de disco,
 controladora memoria e processador) ajudariam a
 clarear um pouco as coisas já que latches não são
 problemas simples de resolver sem um conjunto de
 informações.
 Utilizar parametros não docs eu acho meio arriscado
 antes de fazer uma análise mais completa e alguns que
 você citou são obsoletos.
 Esse problema pode ser relacionado a freelist.
 verifique a nota Note:62172.1 que eu acredito que seja
 mais adequada ao seu caso.

 abs,
 Luis Figueiredo.

 --- Marcelo Cauduro [EMAIL PROTECTED] escreveu:


 -

 Pesquisando um pouco verifiquei que tenho de obter
 sempre um valor tendendo
 a zero de dirty buffers inspected, afinal, pelo que
 entendi, esses valores
 são buffers ja gravados em disco mas ainda não
 liberados

 Estou tentado diminuir esse número, mas como a maquina
 nào é
 multiprocessada, eu não podia aumentar ou colocar mais
 um processo de DBWR,
 então eu fiz os seguintes ajustes :

 alter system set dbwr_io_slaves = 10 scope=spfile;
 alter system set DISK_ASYNCH_IO=false scope=spfile;

 Para ver ser o DBWR ficava mais eficiente, mas isso
 não ajudou
 Não sei se o fato de eu ter colocado um valor alto
 para o dbwr_io_slaves 
 tenha prejudicado, estou pensando em mudar para 4.

 Lendo alguns documentos verifiquei que no Oracle 8i
 pode ser alterado o
 parametro _DB_BLOCK_WRITE_BATCH e no 9i/10g o
 parametro
 _DB_WRITER_MAX_WRITES para ajudar. Mas não tenho
 encontrado ajuda para saber
 um valor a ser setado. Alguem conhece algum
 procedimento em relacao a esses
 parametros, alguma formula, ou alguma outra maneira de
 baixar os dirty
 buffers inspected ?
 Pensei em sintonizart melhor os checkpoints com os
 parametros
 FAST_START_MTTR_TARGET , FAST_START_IO_TARGE... ,
 seria uma boa opçõa ?

 Desde já agradeço,
 Marcelo Cauduro.


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




 --
 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
 __
 O grupo Oracle_br não aceita anexos. Quando oferecer
 algum arquivo, tenha o link do mesmo para evitar
 trafego(pedidos) desnecessário.


 Yahoo! Grupos, um serviço oferecido
 por: PUBLICIDADE
 var lrec_target=_top;var lrec_URL=new
 Array();lrec_URL[1]=
 http://br.ard.yahoo.com/SIG=12ff5f45m/M=396559.7942981.9356151.2369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1147219721/A=3634211/R=0/id=flashurl/SIG=15494h0pu/*http://lt.dell.com/lt/lt.aspx?CID=12387LID=335659DGC=BADGSeg=DHSDURL=http://www1.la.dell.com/content/products/category.aspx/desktops?c%3dbr%26l%3dpt%26s%3ddhs
 ;var
 lrec_flashfile=
 http://br.i1.yimg.com/br.yimg.com/i/br/ads7/080506_y300x250_maio01_dhs_dimension5150.swf?clickTAG=_javascript_:LRECopenWindow(1)http://br.i1.yimg.com/br.yimg.com/i/br/ads7/080506_y300x250_maio01_dhs_dimension5150.swf?clickTAG=_javascript_:LRECopenWindow%281%29
 ;var
 lrec_altURL=
 http://br.ard.yahoo.com/SIG=12ff5f45m/M=396559.7942981.9356151.2369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1147219721/A=3634211/R=1/id=altimg/SIG=15494h0pu/*http://lt.dell.com/lt/lt.aspx?CID=12387LID=335659DGC=BADGSeg=DHSDURL=http://www1.la.dell.com/content/products/category.aspx/desktops?c%3dbr%26l%3dpt%26s%3ddhs
 ;var
 lrec_altimg=
 http://br.i1.yimg.com/br.yimg.com/i/br/ads7/080506_y300x250_maio01_dhs_dimension5150.gif
 ;var
 lrec_width=300;var lrec_height=250;


 -
 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 Termos do Serviço do Yahoo

[oracle_br] LOG_CHECKPOINT_INTERVAL

2006-05-11 Por tôpico Marcelo Cauduro



Existe alguma formula para definir esse parametro ?

Ele interterfere no tempo de checkpoint, eu sei que o ORACLE 10g tem
parametros por exemplo (na versao Entreprise) que administrarm o Checkpoint
com TARGETS mas eu queria saber como definir esse parametro numa versao
Standard do 10g e no 8i/9i...

Obrigado.


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







--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário.





  




  
Yahoo! Grupos, um serviço oferecido por:
  
  
PUBLICIDADE




  
  



  




  
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 Termos do Serviço do Yahoo!.











[oracle_br] Write Requests - V$sysstat - Evento

2006-05-11 Por tôpico Marcelo Cauduro



Pessoal, quero realizar a seguinte consulta para identificar Dirty Blocks,
mas esse evento eu não acho na V$SYSSTAT...
ja olehi no 8i, 9i e 10g e nada ... por favor... alguem pode me ajudar

 Dirty Queue Length

SELECT SUM(DECODE(name,'summed dirty queue length',value)) /
 SUM(DECODE(name,'write requests',value)) Average Write Queue Length
 FROM v$sysstat
 WHERE name IN ( 'summed dirty queue length','write requests')
 AND value  0;


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







--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário.





  




  
Yahoo! Grupos, um serviço oferecido por:
  
  
PUBLICIDADE




  
  



  




  
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 Termos do Serviço do Yahoo!.











[oracle_br] Dirty buffers inspected

2006-05-09 Por tôpico Marcelo Cauduro



Pesquisando um pouco verifiquei que tenho de obter sempre um valor tendendo
a zero de dirty buffers inspected, afinal, pelo que entendi, esses valores
são buffers ja gravados em disco mas ainda não liberados

Estou tentado diminuir esse número, mas como a maquina nào é
multiprocessada, eu não podia aumentar ou colocar mais um processo de DBWR,
então eu fiz os seguintes ajustes :

alter system set dbwr_io_slaves = 10 scope=spfile;
alter system set DISK_ASYNCH_IO=false scope=spfile;

Para ver ser o DBWR ficava mais eficiente, mas isso não ajudou
Não sei se o fato de eu ter colocado um valor alto para o dbwr_io_slaves 
tenha prejudicado, estou pensando em mudar para 4.

Lendo alguns documentos verifiquei que no Oracle 8i pode ser alterado o
parametro _DB_BLOCK_WRITE_BATCH e no 9i/10g o parametro
_DB_WRITER_MAX_WRITES para ajudar. Mas não tenho encontrado ajuda para saber
um valor a ser setado. Alguem conhece algum procedimento em relacao a esses
parametros, alguma formula, ou alguma outra maneira de baixar os dirty
buffers inspected ?
Pensei em sintonizart melhor os checkpoints com os parametros
FAST_START_MTTR_TARGET , FAST_START_IO_TARGE... , seria uma boa opçõa ?

Desde já agradeço,
Marcelo Cauduro.


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







--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário.





  




  
Yahoo! Grupos, um serviço oferecido por:
  
  
PUBLICIDADE




  
  



  




  
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 Termos do Serviço do Yahoo!.











[oracle_br] performance pks com tamanhos diferentes

2006-04-24 Por tôpico Marcelo Cauduro



Pessoal, Uma dúvida :

Se eu tiver FK's com o mesmo tipo de dados... mas com o tamanho diferente...
isso pode me gerar problema d performance?
OBS -- eh logico q isso eh uma pessima modelagem... mas levando em
consideracao apenas questoes performaticas

Obrigado.


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







--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário.





  




  
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 Termos do Serviço do Yahoo!.











[oracle_br] FBI e Rebuild no CBO

2006-04-19 Por tôpico Marcelo Cauduro



Quando criamos uma coluna indexada com função, o Oracle cria uma estrutura
interna onde para cada valor possivel na funcao ele tem uma resultado.
Como ela é deterministica isso é possível.

Mas aí é que esta o problema.
tenho uma função que se você passar um determinada valor , ela sempre vai
retornar o mesmo valor se , e somente se , uma outra coluna de uma outra
tabela contiver um determinado valor, agora, se essa coluna de outra tabela
for
alterada, o valor que a funcão retorna deve ser outro.

Mas o que esta acontencedo ?

Quando eu passo o valor para a FBI ela retorna um valor X, se eu altero a
coluna da outra
tabela que devia fazer a FBI retorna Y ao inves de X, ela ainda retorna X,
na verdade
ela retorna Y apenas se, e somente se, eu der uma rebuild no index.

Como solucionar esse problema sem ter que ficar dando rebuild nos indices ?

Oracle 8i e 9i.


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







--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário.





  




  
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 Termos do Serviço do Yahoo!.












[oracle_br] Migração RBO CBO e Coluna com função muito mais usada no CBO - 70 mil para 250 mil

2006-04-19 Por tôpico Marcelo Cauduro



Estou migrando de RBO para CBO
Supondo que no meu caso seja impossivel fazer um FBI.
Quando faço a querie utilizando regra ela é usada 70 mil vezes, quando uso
Custo, na mesma
querie com os mesmos parametros, ela é utilizada 250 mil vezes.
Tem algum parametro da Instancia que deve ser alterado para que isso não
aconteça ?
Como calcular o custo dessa função ? Quais são as alternativas viáveis ?

OBSERVACAO - digo ser inviavel fazer FBI, pois acredito que venha haver uma
solução para meu outro
problema enviado no email com o Assunto - FBI e Rebuild no CBO

Oracle 8i e 9i.


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







--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário.





  




  
Yahoo! Grupos, um serviço oferecido por:
  
  
PUBLICIDAD




  
  



  




  
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 Termos do Serviço do Yahoo!.












Re: [oracle_br] Superando o NVL - Solucao melhor - http://oracle-docs.dartmouth.edu/dba-docs/articles/cbo.htm - Problem 6

2006-04-19 Por tôpico Marcelo Cauduro



Alguem tem uma sugestão ?

On 4/18/06, Marcelo Cauduro [EMAIL PROTECTED] wrote:

 Mas como fazer um FBI com um valor que seria uma variavel de bind ?

 Eu uso CBO, teria de forçar o Hint mesmo assim ?

 On 4/18/06, Anderson Haertel Rodrigues [EMAIL PROTECTED]
 wrote:
 
  Marcelo,
 
  Uma solução baseada em FBI deve resolver o teu
  problema, certo?
 
  create index nomeindex on tabela
  (nvl(nomecoluna,'null'));
 
  Só que tu terás que modificar a tua Query e forçar
  (através de HINT) o uso do índice criado acima.
 
  Ok?
 
  Anderson Haertel Rodrigues
  Administrador de Banco de Dados - DBA
  Florianópolis/SC
 
 
 
  --- Marcelo Cauduro [EMAIL PROTECTED]  escreveu:
 
   Tudo bem, mas eu queria saber uma outra solução...
   esta não estão muito
   satisfatórias...
  
   On 4/18/06, Rubens Bernardes
[EMAIL PROTECTED] wrote:
   
Para vc analisar melhor performance vc deveria
   fazer
um trace entre as opções de query que vc encontrar
eu vejo as seguintes
1 (versão atual)
   
where campo = nvl ( variavel, campo)
2 -- sql dinâmico
   
   
todas tem vantagens e desvantagens
   
   
   
--- Marcelo Cauduro [EMAIL PROTECTED] escreveu:
   
   
-
   
Pessoal, como obter uma performance melhor nos
   casos
onde você tem a
seguiten situacao
   
where campo = nvl ( variavel, campo)
   
ou seja, vc pode enviar um valor na variavel, dai
   vc
vai querer comparar o
campo sempre a esse valor, ja se vc naum passar
   nada,
ou seja, variavel nula
ele usa o valor do campo mesmo para fazer a
comparacao, desta forma sempre
true.
   
sei de uma maneira para deixar o caso acima melhor
   ...
...
where campo = variavel
unionl
...
where variavel = null
   
mas queria outra alternativa sem ter que
reescrever a querie... e algo
mais performatico também (se é que existe)
   
vi algo interessante no site :
   
  
  http://oracle-docs.dartmouth.edu/dba-docs/articles/cbo.htm
   
fala de

   
   
SELECT account_name, trans_date, amount_FROM
transaction_WHERE account_name = NVL(:acc_name,
account_name);
   
Rather, you should follow this example:
   
   
SELECT account_name, trans_date, amount
_FROM transaction_
WHERE account_name LIKE NVL(:acc_name, '%');

   
substituir usando o like... mas eu estou usando
valores numericos... e
pelo que parece a dica acima
nao deu certo, alguem tem uma solucao melhor e que
funcione ?
   
Valeu.
   
   
[As partes desta mensagem que não continham texto
foram removidas]
   
   
   
   
   
  
 
  --
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
   
  
  __
O grupo Oracle_br não aceita anexos. Quando
   oferecer
algum arquivo, tenha o link do mesmo para evitar
trafego(pedidos) desnecessário.
   
   
   
-
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 Termos do Serviço do Yahoo!.
   
   
   
   
   
   
   
   
   
   
   
   
   
  
  ___
Yahoo! doce lar. Faça do Yahoo! sua homepage.
http://br.yahoo.com/homepageset.html
   
   
   
   
  
  --
 
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
   
  
  __
O grupo Oracle_br não aceita anexos. Quando
   oferecer algum arquivo, tenha
o link do mesmo para evitar trafego(pedidos)
   desnecessário.
   
   
--
*Links do

Re: [oracle_br] Re: Valor máximo do MULTIBLOCK_READ

2006-04-18 Por tôpico Marcelo Cauduro
Nesse caso
WAIT #3: nam='db file scattered read' ela= 27789 p1=24 p2=10 p3=36
Qual seria então o valor ideal ja que o I/o maximo é 36kb ?


On 4/18/06, jlchiappa [EMAIL PROTECTED] wrote:

 Desconheço bugs pra isso, dá uma checada no metalink pra sua versão
 mas acho que não vai ter não, é uma funcionalidade bem antiga do db.
 O impacto que vc poderá ter é que o CBO vai pensar que o full table
 scan ficou mais barato, pode ser que em algum SQL ele passe a dar
 preferência pra full table scan, mas isso vc corrige com os params de
 optimizer_nn, principalmente o optimizer_index_cost_adj (fazendo o
 índice ficar mais barato vc deverá ver muito menos table scans),
 teste aí seus princiopais SQLs antes de mudar em produção


 []s

 Chiappa
 --- Em oracle_br@yahoogrupos.com.br, Thiago Lazzarotto
 [EMAIL PROTECTED] escreveu
 
  Fiz o teste aqui e o valor máximo que obtive foi 128 mesmo
 colocando o
  parametro para 512 por exemplo...
 
  Acho que vou ter um grande ganho já que hj o meu valor é 8.
 
  Existe algum problema em aumentar esse valor?
  Pode haver algum outro tipo de impacto negativo na performance?
  Algum bug conhecido?
 
  Obrigado.
 
  jlchiappa escreveu:
 
   Thiago, não achei a msg que enviei originalmente, mas talvez tenha
   havido erro/omissão de minha parte, segue exemplo completo
 (chiappa é
   o usuário dba, e scott é o usuário comum) :
  
   [EMAIL PROTECTED]:SQLcreate tablespace TS_EXT_10
   datafile '/u2/oradata/COBPROD/data01/ts_ext_10_01.dbf' size 100M
 2  extent management local uniform size 10m nologging;
  
   Tablespace criado.
  
   [EMAIL PROTECTED]:SQLalter user scott quota unlimited on TS_EXT_10;
  
   Usuário alterado.
  
   scott:SQLcreate table TAB_TESTE tablespace TS_EXT_10 as (select *
   from all_objects);
  
   Tabela criada.
  
   scott:SQLBEGIN
 2 for i in 1..200 loop
 3   insert into TAB_TESTE (select * from all_objects);
 4   commit;
 5 end loop;
 6* END;
   /
   scott:SQL commit;
  
   scott:SQL alter session set db_file_multiblock_read_count=128;
  
   Sessão alterada.
  
   [EMAIL PROTECTED]:SQLselect sid, serial# from v$session where
   username='SCOTT';
  
   SID SERIAL#
    ---
 625266
  
   1 linha selecionada.
  
   [EMAIL PROTECTED]:SQLexec sys.dbms_system.set_ev(62, 5266, 10046,
 12, '');
  
   Procedimento PL/SQL concluído com sucesso.
  
   scott:SQL select /*+ FULL */ * FROM TAB_TESTE;
   
   scott:SQL exit
  
   olhar dentro do arquivo .trc gerado :
  
   sid=PRD:/u1/app/oracle/admin/PRD/udumpgrep -i 'db file'
   prd_ora_26020.trc
  
   WAIT #3: nam='db file scattered read' ela= 27789 p1=24 p2=10 p3=36
  
   Note que o evento de table scan se chama 'db file scattered
 read', e
   não 'sequential', como está na msg. Caso vc não saia de 8 blocos
 no
   multiblock read reproduzindo o exemplo acima, duas possibilidades
 aí :
  
   a) na maioria dos unix há um parâmetro (MAXPHYS ou similar) que
   controla o tamanho máximo de I/O, talvez erradamente ele deve
 estar
   como 64 Kb (que corresponde a 8 blocos de 8Kb) - digo erradamente
   porque na MAIORIA esmagadora dos hardwares modernos se consegue
 mais
   q isso...
  
   b) o seu volume de disco tem stripping de 64 Kb : quando vc cria
 um
   volume (principalmente num array de discos) vc entre outras coisas
   informa o stripping , ie, qual o mínimo de I/O que será feito em
 cada
   acesso, se foi informado 64 Kb, é isso que vc obterá
  
   []s
  
 Chiappa
  
   --- Em oracle_br@yahoogrupos.com.br, Thiago Lazzarotto
   [EMAIL PROTECTED] escreveu
   
Senhores...
   
Eu tenho definido no meu banco o db_file_multiblock_read_count
 = 8.
   
Eu fiz o teste que o chiappa passou para ver qual o valor máximo
   para
ser definido no meu parâmetro...
Acontece que o valor é sempre 8.
Daí surgiu a minha dúvida: esse é o valor máximo que o
 SO/Hardware
suporta ou ele está usando esse valor ao máximo por causa do
   parâmetro
já setado?
Meu banco é 8.1.7.4  HPUX 11.11
   
Segue o teste do chiappa.
   
Existem outras maneiras, mas como normalmente isso é uma
 quantidade
de blocos que totaliza 1Mb, ou coisa do tipo, pra vc saber é
 testar,
vc cria uma tablespace LMT uniform size de 10Mb, cria nela uma
   tabela
qquer com PCTFREE 1 PCTUSED 99 e com várias centenas de
 milhares de
linhas, e faz um trace 10046 level 12 de uma sessão fazendo
SELECT /*+ FULL */ * from nomedatabela, isso resulta num
arquivo .TRC  que entre muitas outras vai ter linhas do tipo :
   
WAIT #3: nam='db file scattered read' ela= 249287 p1=41 p2=4234
   p3=nnn
   
nnn é a quantidade de blocos que ele pôde ler duma vez,
db_file_multiblock_read_count deve ter o maior dos nnn que vc
 achar
no arquivo.
   
Obrigado.
Thiago.
   
  
  
  
  
  
  
  
   --
 
   Atenção! As 

[oracle_br] Superando o NVL - Solucao melhor - http://oracle-docs.dartmouth.edu/dba-docs/articles/cbo.htm - Problem 6

2006-04-18 Por tôpico Marcelo Cauduro
Pessoal, como obter uma performance melhor nos casos onde você tem a
seguiten situacao

where campo = nvl ( variavel, campo)

ou seja, vc pode enviar um valor na variavel, dai vc vai querer comparar o
campo sempre a esse valor, ja se vc naum passar nada, ou seja, variavel nula
ele usa o valor do campo mesmo para fazer a comparacao, desta forma sempre
true.

sei de uma maneira para deixar o caso acima melhor ...
...
where campo = variavel
unionl
...
where variavel = null

mas queria outra alternativa sem ter que reescrever a querie... e algo
mais performatico também (se é que existe)

vi algo interessante no site :
http://oracle-docs.dartmouth.edu/dba-docs/articles/cbo.htm

fala de



SELECT account_name, trans_date, amount_FROM
 transaction_WHERE account_name = NVL(:acc_name, account_name);

 Rather, you should follow this example:


SELECT account_name, trans_date, amount
_FROM  transaction_
WHERE account_name LIKE NVL(:acc_name, '%');


substituir usando o like... mas eu estou usando valores numericos... e
pelo que parece a dica acima
nao deu certo, alguem tem uma solucao melhor e que funcione ?

Valeu.


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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
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

 




Re: [oracle_br] Superando o NVL - Solucao melhor - http://oracle-docs.dartmouth.edu/dba-docs/articles/cbo.htm - Problem 6

2006-04-18 Por tôpico Marcelo Cauduro
Tudo bem, mas eu queria saber uma outra solução... esta não estão muito
satisfatórias...

On 4/18/06, Rubens Bernardes [EMAIL PROTECTED] wrote:

  Para vc analisar melhor performance vc deveria fazer
 um trace entre as opções de query que vc encontrar
 eu vejo as seguintes
 1 (versão atual)

 where campo  =  nvl ( variavel, campo)
 2 -- sql dinâmico


 todas tem vantagens e desvantagens



 --- Marcelo Cauduro [EMAIL PROTECTED] escreveu:


 -

 Pessoal, como obter uma performance melhor nos casos
 onde você tem a
 seguiten situacao

 where campo = nvl ( variavel, campo)

 ou seja, vc pode enviar um valor na variavel, dai vc
 vai querer comparar o
 campo sempre a esse valor, ja se vc naum passar nada,
 ou seja, variavel nula
 ele usa o valor do campo mesmo para fazer a
 comparacao, desta forma sempre
 true.

 sei de uma maneira para deixar o caso acima melhor ...
 ...
 where campo = variavel
 unionl
 ...
 where variavel = null

 mas queria outra alternativa sem ter que
 reescrever a querie... e algo
 mais performatico também (se é que existe)

 vi algo interessante no site :
 http://oracle-docs.dartmouth.edu/dba-docs/articles/cbo.htm

 fala de
 


 SELECT account_name, trans_date, amount_FROM
 transaction_WHERE account_name = NVL(:acc_name,
 account_name);

 Rather, you should follow this example:


 SELECT account_name, trans_date, amount
 _FROM  transaction_
 WHERE account_name LIKE NVL(:acc_name, '%');
 

 substituir usando o like... mas eu estou usando
 valores numericos... e
 pelo que parece a dica acima
 nao deu certo, alguem tem uma solucao melhor e que
 funcione ?

 Valeu.


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




 --
 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
 __
 O grupo Oracle_br não aceita anexos. Quando oferecer
 algum arquivo, tenha o link do mesmo para evitar
 trafego(pedidos) desnecessário.



 -
 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 Termos do Serviço do Yahoo!.












 ___
 Yahoo! doce lar. Faça do Yahoo! sua homepage.
 http://br.yahoo.com/homepageset.html



 --
 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
 __
 O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha
 o link do mesmo para evitar trafego(pedidos) desnecessário.


 --
 *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][EMAIL PROTECTED]

- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo! http://br.yahoo.com/info/utos.html.




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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
Links do Yahoo! Grupos

Re: [oracle_br] Superando o NVL - Solucao melhor - http://oracle-docs.dartmouth.edu/dba-docs/articles/cbo.htm - Problem 6

2006-04-18 Por tôpico Marcelo Cauduro
Mas como fazer um FBI com um valor que seria uma variavel de bind ?

Eu uso CBO, teria de forçar o Hint mesmo assim ?

On 4/18/06, Anderson Haertel Rodrigues [EMAIL PROTECTED]
wrote:

 Marcelo,

 Uma solução baseada em FBI deve resolver o teu
 problema, certo?

 create index nomeindex on tabela
 (nvl(nomecoluna,'null'));

 Só que tu terás que modificar a tua Query e forçar
 (através de HINT) o uso do índice criado acima.

 Ok?

 Anderson Haertel Rodrigues
 Administrador de Banco de Dados - DBA
 Florianópolis/SC



 --- Marcelo Cauduro [EMAIL PROTECTED] escreveu:

  Tudo bem, mas eu queria saber uma outra solução...
  esta não estão muito
  satisfatórias...
 
  On 4/18/06, Rubens Bernardes
  [EMAIL PROTECTED] wrote:
  
Para vc analisar melhor performance vc deveria
  fazer
   um trace entre as opções de query que vc encontrar
   eu vejo as seguintes
   1 (versão atual)
  
   where campo  =  nvl ( variavel, campo)
   2 -- sql dinâmico
  
  
   todas tem vantagens e desvantagens
  
  
  
   --- Marcelo Cauduro [EMAIL PROTECTED] escreveu:
  
  
   -
  
   Pessoal, como obter uma performance melhor nos
  casos
   onde você tem a
   seguiten situacao
  
   where campo = nvl ( variavel, campo)
  
   ou seja, vc pode enviar um valor na variavel, dai
  vc
   vai querer comparar o
   campo sempre a esse valor, ja se vc naum passar
  nada,
   ou seja, variavel nula
   ele usa o valor do campo mesmo para fazer a
   comparacao, desta forma sempre
   true.
  
   sei de uma maneira para deixar o caso acima melhor
  ...
   ...
   where campo = variavel
   unionl
   ...
   where variavel = null
  
   mas queria outra alternativa sem ter que
   reescrever a querie... e algo
   mais performatico também (se é que existe)
  
   vi algo interessante no site :
  
 
 http://oracle-docs.dartmouth.edu/dba-docs/articles/cbo.htm
  
   fala de
   
  
  
   SELECT account_name, trans_date, amount_FROM
   transaction_WHERE account_name = NVL(:acc_name,
   account_name);
  
   Rather, you should follow this example:
  
  
   SELECT account_name, trans_date, amount
   _FROM  transaction_
   WHERE account_name LIKE NVL(:acc_name, '%');
   
  
   substituir usando o like... mas eu estou usando
   valores numericos... e
   pelo que parece a dica acima
   nao deu certo, alguem tem uma solucao melhor e que
   funcione ?
  
   Valeu.
  
  
   [As partes desta mensagem que não continham texto
   foram removidas]
  
  
  
  
  
 

 --
   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
  
 
 __
   O grupo Oracle_br não aceita anexos. Quando
  oferecer
   algum arquivo, tenha o link do mesmo para evitar
   trafego(pedidos) desnecessário.
  
  
  
   -
   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 Termos do Serviço do Yahoo!.
  
  
  
  
  
  
  
  
  
  
  
  
  
 
 ___
   Yahoo! doce lar. Faça do Yahoo! sua homepage.
   http://br.yahoo.com/homepageset.html
  
  
  
  
 

 --
   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
  
 
 __
   O grupo Oracle_br não aceita anexos. Quando
  oferecer algum arquivo, tenha
   o link do mesmo para evitar trafego(pedidos)
  desnecessário.
  
  
   --
   *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]
 [EMAIL PROTECTED]http://[EMAIL PROTECTED]/?subject=Unsubscribe
 
  
  - O

[oracle_br] Configurar uma instancia corretamente - Expert Oracle Database Architecture

2006-04-17 Por tôpico Marcelo Cauduro
Para configurar uma instancia é necessário estar atento a varios parametros
de inicialização , como por exemplo PGA_AGGREGATE_TARGET (9i) e outros
parametros.

Os livros Expert One on One: Oracle / Expert Oracle Database
Architecture: 9i and 10g Programming
Techniques and Solutions ou Effective Oracle by Design tratam desses
assuntos ?

Obrigado.


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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
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] Re: Configurar uma instancia corretamente - Expert Oracle Database Architecture

2006-04-17 Por tôpico Marcelo Cauduro
Alguem sabe ? Foi o chiappa que recomendou esses livros.

On 4/17/06, Marcelo Cauduro [EMAIL PROTECTED] wrote:

 Para configurar uma instancia é necessário estar atento a varios
 parametros de inicialização , como por exemplo PGA_AGGREGATE_TARGET (9i) e
 outros parametros.

 Os livros Expert One on One: Oracle / Expert Oracle Database
 Architecture: 9i and 10g Programming
 Techniques and Solutions ou Effective Oracle by Design tratam desses
 assuntos ?

 Obrigado.



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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
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

 




Re: [oracle_br] Re: RES: Limpar TableSpaces

2006-04-17 Por tôpico Marcelo Cauduro
Por que vc diz :
 aí num caso desses é bem mais trabalhoso antes do banco 10g  ?

O que o banco 10g facilita nesse ultimo caso citado ?



On 4/17/06, jlchiappa [EMAIL PROTECTED] wrote:

  Ederson, deixe-me tentar esclarecer e aumentar aí : na verdade, é **
 MUITO ** fácil vc descobrir o HWM , DESDE que vc conheça os conceitos
 a respeito e não vá procurar o que não existe. São eles :

 a) hwm não é apenas o ponto na tablespace onde chegou a escrita de
 dados, e sim o ponto MAIS ALTO em CADA DATAFILE da tablespace onde
 já chegou a escrita de dados ** E ** cujos extents ainda não foram
 dropados/movidos

 b) NÃO existe um hwm da tablespace, e sim UM hwm em CADA datafile

 c) dentro dum datafile, o espaço é alocado por extents, extents são
 compostos por blocos, e os blocos num datafile são sequenciais, assim
 de acordo com o conceito a) , se eu achar o último bloco do extent
 mais alto, imediatamente acima fica o hwm.

 Exemplo :

 [EMAIL PROTECTED]:SQLcreate tablespace TS_TESTE datafile 'D:\O9IR2\O9IR2
 \TS_TESTE_01.DBF' size 100M nologging;

 [EMAIL PROTECTED]:SQLselect * from dba_tablespaces where
 tablespace_name='TS_TESTE';

 TABLESPACE_NAMEBLOCK_SIZE
 INITIAL_EXTENTNEXT_EXTENTMIN_EXTENTS
 MAX_EXTENTS   PCT_INCREASE MIN_EXTLEN STATUSCONTENTS
 LOGGING   FOR EXTENT_MAN ALLOCATIO PLU SEGMEN
 -- -- -- -
 - -- -- --
  -- - - - --- -- -
  --- --
 TS_TESTE 8192
 65536 1
 2147483645 65536 ONLINEPERMANENT
 NOLOGGING NO  LOCAL  SYSTEMNO  MANUAL

 [EMAIL PROTECTED]:SQLcreate table TAB1 tablespace TS_TESTE nologging as
 (select * from scott.emp where 1=2);

 Tabela criada.

 [EMAIL PROTECTED]:SQLcreate table TAB2 tablespace TS_TESTE  nologging as
 (select * from dba_objects where 1=2);

 Tabela criada.

 [EMAIL PROTECTED]:SQLBEGIN
   2  for i in 1..100 loop
   3 insert into TAB1 (select * from scott.emp);
   4 commit;
   5  end loop;
   6  END;
   7  /

 Procedimento PL/SQL concluído com sucesso.

 [EMAIL PROTECTED]:SQLselect owner, SEGMENT_TYPE, SEGMENT_NAME,
 PARTITION_NAME, file_id, max(block_id) from dba_extents where
 tablespace_name='TS_TESTE'
   2  group by owner, SEGMENT_TYPE, SEGMENT_NAME, PARTITION_NAME,
 file_id
   3* order by file_id, 6 , owner, SEGMENT_TYPE, SEGMENT_NAME,
 PARTITION_NAME;

 OWNERSEGMENT_TYPE
 SEGMENT_NAME
 PARTITION_NAMEFILE_ID  MAX(BLOCK_ID)
  -- --
 - -- -- --
 SYSTEM   TABLE
 TAB2
   2 17
 SYSTEM   TABLE
 TAB1
   2 25


 == no caso o maior block_id já usado nesse tal datafile número dois
 (o único da tablespace por enquanto) é o bloco 25, vamos ver quantos
 blocos tenho nesse extent a partir desse bloco :

 [EMAIL PROTECTED]:SQLselect blocks from dba_extents where
 tablespace_name='TS_TESTE' and file_id=2 and block_id=25;

 BLOCKS
 --
  8

 OK, a partir do bloco 25 tenho mais 8, em bytes isso fica :

 [EMAIL PROTECTED]:SQLselect (25+8) * 8192 from dual;

(25+8)*8192
 --
 270336

 o datafile que quero shrinkar (digamos) tem :

 [EMAIL PROTECTED]:SQLselect * from dba_data_files where
 tablespace_name='TS_TESTE';

 FILE_NAME
   FILE_ID TABLESPACE_NAME
 BYTES BLOCKS STATUS  RELATIVE_FNO AUT
 MAXBYTES  MAXBLOCKS   INCREMENT_BY
 USER_BYTESUSER_BLOCKS
  -
 - -- -- --
  - -- --- -- -
 - -- -- --
 
 D:\O9IR2\O9IR2
 \TS_TESTE_01.DBF
   2 TS_TESTE104857600
 12800 AVAILABLE  2 NO
 0  0  0
 104792064  12792

 == inclusive, veja que tenho BYTES=104857600 e USER_BYTES=104792064,
 por que ?? A diferença de 64 Kb é o BITMAP das tablespaces LMT, como
 é o caso da minha,algo que o pessoal SEMPRE parecer esquecer de levar
 em conta... No caso, tenho 104792064 bytes de tamanho efetivo, só uso
 270336 bytes, do byte 270337 em diante poderia shrinkar :

 [EMAIL PROTECTED]:SQLselect 65536 + 270336 from dual;

   65536+270336
 --
 335872

 [EMAIL PROTECTED]:SQLalter database datafile 'D:\O9IR2\O9IR2
 \TS_TESTE_01.DBF' resize 335872;

 Banco de dados alterado.

 [EMAIL PROTECTED]:SQLselect * from dba_data_files where
 

Re: [oracle_br] Re: Configurar uma instancia corretamente - Expert Oracle Database Architecture

2006-04-17 Por tôpico Marcelo Cauduro
Legal, !

O do Jonathan Lewis seria o Cost-Based Oracle Fundamentals ?

On 4/17/06, jlchiappa [EMAIL PROTECTED] wrote:

  É claro, por principais entende-se os que mais comumente resultam
 em aumento de performance e/ou facilidade de uso e/ou prevenção de
 erros, mas NÂO é de modo algum completíssimo a ponto de se poder
 fazer tunning só por esse livro. O procedimento que eu recomendo é :
 primeiro manuais Oracle, DEPOIS esse livro pra ter idéias tuning mais
 geral, o do Jonathan Lewis para ajustes de CBO, o do Guy harrison
 para tunning de SQL, aí vai...

 []s

 Chiappa
 --- Em oracle_br@yahoogrupos.com.br, jlchiappa [EMAIL PROTECTED]
 escreveu
 
  Oi Marcelo, seguinte : o Expert Oracle Database Architecture: 9i
 and
  10g Programming fala sim sobre ajuste dos principais parâmetros,
  inclusive apresenta casos-exemplo em cima. O ponto só é que o autor
  SUPÕE que a pessoa já estudou os manuais Oracle, então com certeza
 já
  sabe para que serve o dito parâmetro, ele não repete a teoria
 exposta
  nos manuais.
 
  []s
 
   Chiappa
 
  --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro
  [EMAIL PROTECTED] escreveu

  
   Alguem sabe ? Foi o chiappa que recomendou esses livros.
  
   On 4/17/06, Marcelo Cauduro [EMAIL PROTECTED] wrote:
   
Para configurar uma instancia é necessário estar atento a varios
parametros de inicialização , como por exemplo
  PGA_AGGREGATE_TARGET (9i) e
outros parametros.
   
Os livros Expert One on One: Oracle / Expert Oracle Database
Architecture: 9i and 10g Programming
Techniques and Solutions ou Effective Oracle by Design
 tratam
  desses
assuntos ?
   
Obrigado.
   
  
  
   [As partes desta mensagem que não continham texto foram removidas]
  
 







 --
 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
 __
 O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha
 o link do mesmo para evitar trafego(pedidos) desnecessário.


 --
 *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][EMAIL PROTECTED]

- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo! http://br.yahoo.com/info/utos.html.




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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
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

 




Re: [oracle_br] Re: RES: Limpar TableSpaces

2006-04-17 Por tôpico Marcelo Cauduro
Perfeito !!!

Valeu Chiappa.

On 4/17/06, jlchiappa [EMAIL PROTECTED] wrote:

  É que pra esse trabalho de liberar espaço quando vc sabe que não vai
 mais haver DMLs e a hwm está alta e há muitos espaço em branco que só
 seriam re-usados em DMLs , no 10g vc tem a opção de SEGMENT SHRINK,
 como mostrado em http://asktom.oracle.com/pls/ask/f?
 p=4950:8:F4950_P8_DISPLAYID:17312316112393 e documentado nos
 manuais 10g, e isso funciona MESMO que o segmento esteja espalhado
 em vários datafiles da tablespace, nas versões inferiores não tem
 acordo, é move ou rebuild do segmento pra depois se poder fazer o
 shrink, e se forem muitos datafiles isso é um pouquinho incômodo, é
 isso.

 []s

 Chiappa

 --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro
 [EMAIL PROTECTED] escreveu

 
  Por que vc diz :
   aí num caso desses é bem mais trabalhoso antes do banco 10g  ?
 
  O que o banco 10g facilita nesse ultimo caso citado ?
 
 
 
  On 4/17/06, jlchiappa [EMAIL PROTECTED] wrote:
  
Ederson, deixe-me tentar esclarecer e aumentar aí : na verdade,
 é **
   MUITO ** fácil vc descobrir o HWM , DESDE que vc conheça os
 conceitos
   a respeito e não vá procurar o que não existe. São eles :
  
   a) hwm não é apenas o ponto na tablespace onde chegou a escrita
 de
   dados, e sim o ponto MAIS ALTO em CADA DATAFILE da tablespace
 onde
   já chegou a escrita de dados ** E ** cujos extents ainda não foram
   dropados/movidos
  
   b) NÃO existe um hwm da tablespace, e sim UM hwm em CADA
 datafile
  
   c) dentro dum datafile, o espaço é alocado por extents, extents
 são
   compostos por blocos, e os blocos num datafile são sequenciais,
 assim
   de acordo com o conceito a) , se eu achar o último bloco do extent
   mais alto, imediatamente acima fica o hwm.
  
   Exemplo :
  
   [EMAIL PROTECTED]:SQLcreate tablespace TS_TESTE datafile 'D:\O9IR2
 \O9IR2
   \TS_TESTE_01.DBF' size 100M nologging;
  
   [EMAIL PROTECTED]:SQLselect * from dba_tablespaces where
   tablespace_name='TS_TESTE';
  
   TABLESPACE_NAMEBLOCK_SIZE
   INITIAL_EXTENTNEXT_EXTENTMIN_EXTENTS
   MAX_EXTENTS   PCT_INCREASE MIN_EXTLEN STATUS
 CONTENTS
   LOGGING   FOR EXTENT_MAN ALLOCATIO PLU SEGMEN
   -- -- 
 -- -
   - -- -- --
 
    -- - - - --- 
 -- -
    --- --
   TS_TESTE 8192
   65536 1
   2147483645 65536 ONLINE
 PERMANENT
   NOLOGGING NO  LOCAL  SYSTEMNO  MANUAL
  
   [EMAIL PROTECTED]:SQLcreate table TAB1 tablespace TS_TESTE nologging
 as
   (select * from scott.emp where 1=2);
  
   Tabela criada.
  
   [EMAIL PROTECTED]:SQLcreate table TAB2 tablespace TS_TESTE  nologging
 as
   (select * from dba_objects where 1=2);
  
   Tabela criada.
  
   [EMAIL PROTECTED]:SQLBEGIN
 2  for i in 1..100 loop
 3 insert into TAB1 (select * from scott.emp);
 4 commit;
 5  end loop;
 6  END;
 7  /
  
   Procedimento PL/SQL concluído com sucesso.
  
   [EMAIL PROTECTED]:SQLselect owner, SEGMENT_TYPE, SEGMENT_NAME,
   PARTITION_NAME, file_id, max(block_id) from dba_extents where
   tablespace_name='TS_TESTE'
 2  group by owner, SEGMENT_TYPE, SEGMENT_NAME, PARTITION_NAME,
   file_id
 3* order by file_id, 6 , owner, SEGMENT_TYPE, SEGMENT_NAME,
   PARTITION_NAME;
  
   OWNERSEGMENT_TYPE
   SEGMENT_NAME
   PARTITION_NAMEFILE_ID  MAX
 (BLOCK_ID)
    -- --
 
   - -- -- --
 
   SYSTEM   TABLE
   TAB2
 2 17
   SYSTEM   TABLE
   TAB1
 2 25
  
  
   == no caso o maior block_id já usado nesse tal datafile número
 dois
   (o único da tablespace por enquanto) é o bloco 25, vamos ver
 quantos
   blocos tenho nesse extent a partir desse bloco :
  
   [EMAIL PROTECTED]:SQLselect blocks from dba_extents where
   tablespace_name='TS_TESTE' and file_id=2 and block_id=25;
  
   BLOCKS
   --
8
  
   OK, a partir do bloco 25 tenho mais 8, em bytes isso fica :
  
   [EMAIL PROTECTED]:SQLselect (25+8) * 8192 from dual;
  
  (25+8)*8192
   --
   270336
  
   o datafile que quero shrinkar (digamos) tem :
  
   [EMAIL PROTECTED]:SQLselect * from dba_data_files where
   tablespace_name='TS_TESTE';
  
   FILE_NAME
 FILE_ID TABLESPACE_NAME
   BYTES BLOCKS STATUS  RELATIVE_FNO AUT
   MAXBYTES  MAXBLOCKS   INCREMENT_BY
   USER_BYTESUSER_BLOCKS

[oracle_br] Tem que adaptar a querie para RBO ?

2006-04-17 Por tôpico Marcelo Cauduro
Temos um sistema que foi feito para funcionar com o otimizador em regras.

Tem uma querie que funciona melhor em regra do que em custo. Por isso
fizermos alterações na querie (join com tabela de 1 linha, FBI...) e agora
ela ficou boa no custo também.

Mas aí é que fica a dúvida,  pois tivemos que alterar a querie para ela
ficar boa... por isso queria saber :

É possivel algum caso que, mesmo com todas as estatisticas , histogramas e
etcs... corretos, todos os parametros de  configuracao (optimizer...)
corretos... e mesmo assim o RULE ser melhor que o COST ???

Como nesse caso (embora pode ser que os parametros / estisticas /histogramas
nao sejam os ideais ) onde só alterando a querie foi possivel obter uma
melhor performance ?


Muito obrigado.


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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
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] Livro que aborda bastante statspack

2006-04-13 Por tôpico Marcelo Cauduro
Alguem sabe algum livro que aborda statspack ??


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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
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] db file sequential read

2006-04-11 Por tôpico Marcelo Cauduro
Muito estranho... o seguinte evento... que pelo que li é um evento que
mostra a leitura de um bloco fisico para memoria quando se usa indices...
.parece q tem alguns outros casos... mas enfim...

estou com uma querie q ta parada faz um tempao... e eh esse evento q ta
nela...
essa tabela tem indice e eu to fazendo inserst...
tudo bem.. alguem pode me dizer.. desabilita os indice...

mas minha pergunta é : pq isto acontencedo num oracle 10g, quando na mesma
maquina, num oracle 8i isso demorou minutos... e agora ja faz horas que
esses inserts estao rodando no 10g ?

Lembrando q os dados sao iguais

Obrigado


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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
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

 





Re: [oracle_br] RBA - redo byte address - CONTROL FILE - Resetlogs

2006-04-08 Por tôpico Marcelo Cauduro
E o RBA 

Alguem entende ???

On 4/7/06, Luis Claudio Arruda Figueiredo [EMAIL PROTECTED]
wrote:

  Marcelo.

 Boa noite.

 Amigo pelo que sei a opcao do Resetlogs é utilizada em
 recuperações de mídia incompleta ou quando você
 utiliza um controlfile para redefinir a numeração de
 logs.

 Ex...:

 Recover Database Until change 2214 using backup
 controlfile;

 Ou

 Recover Database Until time'2006-04-07:12:00:00' using
 backup controlfile;


 Nesse ponto o Oracle encerra automaticamente a
 recuperação quando atingir o SCN correto.

 Execute novamente um backup completo do seu db caso
 contrário você não irá conseguir recuperar as
 alterações feitas após redefinir os logs.


 --- Marcelo Cauduro [EMAIL PROTECTED] escreveu:


 -

 Estava lendo esses dois artigos :



 http://esemrick.blogspot.com/2006/02/backup-control-files-are-they-special.html
 http://www.ixora.com.au/notes/rba.htm).http://www.ixora.com.au/notes/rba.htm%29.
 Um deles explica a importancia do RESETLOGS e o outro
 fala de RBA.

 Mas me confundi no conceito do RESETLOGS (pelo q sei
 ele volta o SCN para o
 inicio) e RBA e o relacionamente entre ambos.
 e o pq de ambos.

 Alguem poderia me dar uma luz ?

 Muito Obrigado


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




 --
 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
 __
 O grupo Oracle_br não aceita anexos. Quando oferecer
 algum arquivo, tenha o link do mesmo para evitar
 trafego(pedidos) desnecessário.



 -
 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 Termos do Serviço do Yahoo!.





 ___
 Abra sua conta no Yahoo! Mail: 1GB de espaço, alertas de e-mail no celular
 e anti-spam realmente eficaz.
 http://br.info.mail.yahoo.com/


 --
 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
 __
 O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha
 o link do mesmo para evitar trafego(pedidos) desnecessário.


 --
 *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][EMAIL PROTECTED]

- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo! http://br.yahoo.com/info/utos.html.




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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
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

 





Re: [oracle_br] Exp Imp utilizando o Data Pump

2006-04-07 Por tôpico Marcelo Cauduro
 CONTROLFILE por
  apenas
   RECOVER DATABASE,
   e depois ALTER DATABASE OPEN RESETLOGS, isso deve funcionar.
  
  
   Abraço.
  
   André Campos
  
   -- Início da mensagem original ---
  
   De: oracle_br@yahoogrupos.com.br
   Para: oracle_br@yahoogrupos.com.br
   Cc:
   Data: Thu, 6 Apr 2006 15:27:05 -0300
  
   Assunto: Re: [oracle_br] Exp  Imp utilizando o Data Pump
   
kra... tem certeza q funciona ?
estou obtendo o erro :
ORA-01589: must use RESETLOGS or NORESETLOGS option for database
  open
quando tento alter database open resetlogs
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/u5/oradata/orarboho/system_01.dbf'
Lembrando q as duas maquinas não estão em Archive
On 3/31/06, Reginaldo F. Silva wrote:


 Os caminhos serao ajustados no arquivo gerado
'\ControlFile.out
  



 Atenciosamente,

 Reginaldo de Fáveri da Silva
 Administrador de Banco de Dados
 Oracle 8i Certified
 Softplan Plan. Sist. Ltda.
 Fone.:(0xx48) 3027-8000
 Sistema da Qualidade Certificado
 ISO9001-BVQI/INMETRO


 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br
[mailto:[EMAIL PROTECTED] Em
 nome de Marcelo Cauduro
 Enviada em: sexta-feira, 31 de março de 2006 13:17

 Para: oracle_br@yahoogrupos.com.br
 Assunto: Re: [oracle_br] Exp  Imp utilizando o Data Pump


 Não ira dar problema nos datafiles ? eles não estão com o
  diretorio
da
 outra
 maquina ?

 On 3/31/06, Reginaldo F. Silva wrote:
 
 
 
  Outra maneira sem usar Exp/Imp
 
  set oracle_sid=SID1
  sqlplus / as sysdba
  alter database backup controlfile to trace as
 '\ControlFile.out'
  
  reuse;
  shutdown immediate;
  exit;
 
  faça uma cópia fria do banco renomeando a pasta para o caminho
desejado
  (ex: F:\Oradata\Base1 - G:\Oradata\Base2)
 
  set oracle_sid=SID1
  sqlplus / as sysdba
  startup
  exit;
 
  edite o arquivo \ControlFile.out e ajuste o novo nome
  
base e
  caminho.
  Ex:
  CREATE CONTROLFILE REUSE DATABASE OLD_NAME NORESETLOGS
 NOARCHIVELOG
  para
  CREATE CONTROLFILE REUSE SET DATABASE NEW_NAME RESETLOGS
NOARCHIVELOG
 
  Crie o arquivo initSID2.ora para a nova base
 
  Crie a instancia (oradim -new ...)
 
  set oracle_sid=SID2
  sqlplus / as sysdba
  startup nomount pfile=\initSID2.ora
  @\ControlFile.out
  
 
 
  Este método pode ser usado inclusive para copiar para outros
servidores
  (manter exatamente a mesma versão do oracle)
 
 
  Atenciosamente,
 
  Reginaldo de Fáveri da Silva
  Administrador de Banco de Dados
  Oracle 8i Certified
  Softplan Plan. Sist. Ltda.
  Fone.:(0xx48) 3027-8000
  Sistema da Qualidade Certificado
  ISO9001-BVQI/INMETRO
 
  -Mensagem original-
  De: oracle_br@yahoogrupos.com.br
[mailto:[EMAIL PROTECTED]
 Em
  nome de wpedroti
  Enviada em: quinta-feira, 30 de março de 2006 17:13
  Para: oracle_br@yahoogrupos.com.br
  Assunto: [oracle_br] Exp  Imp utilizando o Data Pump
 
 
  olá Pessoal,
 
  Sou novo no grupo e já estou com problemas no import, tentei
detalhar
  o máximo possível do erro, caso alguém tenha uma luz, desde já
  agradeço.
 
  Obrigado
 
  Oracle 10g em um servidor RedHat 4.0. Tenho o seguinte script
  para
  fazer o export:
  su - oracle -c /oracle/product/10.2.0/db_1/bin/expdp
luk/[EMAIL PROTECTED]
  schemas=DOV directory=DOV DUMPFILE=$nomearq_dov
LOGFILE=expdp_dov.log
 
  O log da exportação:
  . . exported LUK.SCSDO0A0 8.398 KB 40 rows
  Master table LUK.SYS_EXPORT_SCHEMA_01 successfully
loaded/unloaded
 
   
  **
  
  Dump file set for LUK.SYS_EXPORT_SCHEMA_01 is:
  /bkp/luk/dov2006_Mar_24.dmp
  Job LUK.SYS_EXPORT_SCHEMA_01 successfully completed at
02:02:55
 
  A importação é feita em uma máquina com sistema operacional
  WXP
  Script da importação:
  impdp luk/[EMAIL PROTECTED] schemas=LUK directory=LUK
  dumpfile=dov2006_Mar_24.dmp logfile=impdp_dov.log
 
  O log da importação
  Conectado a: Oracle Database 10g Enterprise Edition Release
  10.2.0.1.0 - Production With the Partitioning, OLAP and Data
Mining
  options Tabela-mestre LUK.SYS_IMPORT_SCHEMA_01
  carregada/descarregada com sucesso
  Iniciando LUK.SYS_IMPORT_SCHEMA_01: luk/[EMAIL PROTECTED]
  schemas=LUK directory=LUK dumpfile=dov2006_Mar_24.dmp
  logfile=impdp_dov.log Processando o tipo de objeto
SCHEMA_EXPORT/USER
  ORA-31684: O tipo de objeto USER:LUK já existe
  ORA-31684: O tipo de objeto

[oracle_br] RBA - redo byte address - CONTROL FILE - Resetlogs

2006-04-07 Por tôpico Marcelo Cauduro
Estava lendo esses dois artigos :


http://esemrick.blogspot.com/2006/02/backup-control-files-are-they-special.html
 http://www.ixora.com.au/notes/rba.htm).
Um deles explica a importancia do RESETLOGS e o outro fala de RBA.

Mas me confundi no conceito do RESETLOGS (pelo q sei ele volta o SCN para o
inicio) e RBA e o relacionamente entre ambos.
e o pq de ambos.

Alguem poderia me dar uma luz ?

Muito Obrigado


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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
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

 




Re: [oracle_br] Exp Imp utilizando o Data Pump

2006-04-06 Por tôpico Marcelo Cauduro
kra... tem certeza q funciona ?

estou obtendo o erro :

ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

quando tento alter database open resetlogs


ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/u5/oradata/orarboho/system_01.dbf'

Lembrando q as duas maquinas não estão em Archive


On 3/31/06, Reginaldo F. Silva [EMAIL PROTECTED] wrote:


 Os caminhos serao ajustados no arquivo gerado 'caminho\ControlFile.out



 Atenciosamente,

 Reginaldo de Fáveri da Silva
 Administrador de Banco de Dados
 Oracle 8i Certified
 Softplan Plan. Sist. Ltda.
 Fone.:(0xx48) 3027-8000
 Sistema da Qualidade Certificado
 ISO9001-BVQI/INMETRO


 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
 nome de Marcelo Cauduro
 Enviada em: sexta-feira, 31 de março de 2006 13:17

 Para: oracle_br@yahoogrupos.com.br
 Assunto: Re: [oracle_br] Exp  Imp utilizando o Data Pump


 Não ira dar problema nos datafiles ? eles não estão com o diretorio da
 outra
 maquina ?

 On 3/31/06, Reginaldo F. Silva [EMAIL PROTECTED] wrote:
 
 
 
  Outra maneira sem usar Exp/Imp
 
  set oracle_sid=SID1
  sqlplus / as sysdba
  alter database backup controlfile to trace as
 'caminho\ControlFile.out'
  reuse;
  shutdown immediate;
  exit;
 
  faça uma cópia fria do banco renomeando a pasta para o caminho desejado
  (ex: F:\Oradata\Base1 - G:\Oradata\Base2)
 
  set oracle_sid=SID1
  sqlplus / as sysdba
  startup
  exit;
 
  edite o arquivo caminho\ControlFile.out e ajuste o novo nome base e
  caminho.
  Ex:
  CREATE CONTROLFILE REUSE DATABASE OLD_NAME NORESETLOGS
 NOARCHIVELOG
para
  CREATE CONTROLFILE REUSE SET DATABASE NEW_NAME RESETLOGS NOARCHIVELOG
 
  Crie o arquivo initSID2.ora para a nova base
 
  Crie a instancia (oradim -new ...)
 
  set oracle_sid=SID2
  sqlplus / as sysdba
  startup nomount pfile=caminho\initSID2.ora
  @caminho\ControlFile.out
 
 
  Este método pode ser usado inclusive para copiar para outros servidores
  (manter exatamente a mesma versão do oracle)
 
 
  Atenciosamente,
 
  Reginaldo de Fáveri da Silva
  Administrador de Banco de Dados
  Oracle 8i Certified
  Softplan Plan. Sist. Ltda.
  Fone.:(0xx48) 3027-8000
  Sistema da Qualidade Certificado
  ISO9001-BVQI/INMETRO
 
  -Mensagem original-
  De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
 Em
  nome de wpedroti
  Enviada em: quinta-feira, 30 de março de 2006 17:13
  Para: oracle_br@yahoogrupos.com.br
  Assunto: [oracle_br] Exp  Imp utilizando o Data Pump
 
 
  olá Pessoal,
 
  Sou novo no grupo e já estou com problemas no import, tentei detalhar
  o máximo possível do erro, caso alguém tenha uma luz, desde já
  agradeço.
 
  Obrigado
 
  Oracle 10g em um servidor RedHat 4.0. Tenho o seguinte script para
  fazer o export:
  su - oracle -c /oracle/product/10.2.0/db_1/bin/expdp luk/[EMAIL PROTECTED]
  schemas=DOV directory=DOV DUMPFILE=$nomearq_dov LOGFILE=expdp_dov.log
 
  O log da exportação:
  . . exported LUK.SCSDO0A0  8.398 KB  40 rows
  Master table LUK.SYS_EXPORT_SCHEMA_01 successfully loaded/unloaded
  **
  
  Dump file set for LUK.SYS_EXPORT_SCHEMA_01 is:
/bkp/luk/dov2006_Mar_24.dmp
  Job LUK.SYS_EXPORT_SCHEMA_01 successfully completed at 02:02:55
 
  A importação é feita em uma máquina com sistema operacional WXP
  Script da importação:
  impdp luk/[EMAIL PROTECTED] schemas=LUK directory=LUK
  dumpfile=dov2006_Mar_24.dmp logfile=impdp_dov.log
 
  O log da importação
  Conectado a: Oracle Database 10g Enterprise Edition Release
  10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining
  options Tabela-mestre LUK.SYS_IMPORT_SCHEMA_01
  carregada/descarregada com sucesso
  Iniciando LUK.SYS_IMPORT_SCHEMA_01:  luk/[EMAIL PROTECTED]
  schemas=LUK directory=LUK dumpfile=dov2006_Mar_24.dmp
  logfile=impdp_dov.log Processando o tipo de objeto SCHEMA_EXPORT/USER
  ORA-31684: O tipo de objeto USER:LUK já existe
  ORA-31684: O tipo de objeto SEQUENCE:LUK.TOTALCL_DFSEQ já existe
  Processando o tipo de objeto SCHEMA_EXPORT/TABLE/TABLE
  ORA-39151: A tabela LUK.MCUSR0A0 existe. Todos os metadados e
  dados dependentes serão ignorados em decorrência de
  table_exists_action ignorado Processando o tipo de objeto
  SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
  O job LUK.SYS_IMPORT_SCHEMA_01 foi concluído com 655 erro(s) em
  13:13:40
 
 
 
 
 
 
 
 
 
 
 
 
 

 
  --
  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

Re: [oracle_br] Exp Imp utilizando o Data Pump

2006-04-06 Por tôpico Marcelo Cauduro
kra... o erro q da quando rodo o arquivo de trace do control file..

Cluster altered.

SP2-0734: unknown command beginning Recovery i... - rest of line ignored.
SP2-0734: unknown command beginning or if the ... - rest of line ignored.
ORA-00283: recovery session canceled due to errors
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done


SP2-0734: unknown command beginning Database c... - rest of line ignored.
ALTER DATABASE OPEN RESETLOGS
*
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/u5/oradata/orarboho/system_01.dbf'


SP2-0734: unknown command beginning Commands t... - rest of line ignored.
SP2-0734: unknown command beginning Online tem... - rest of line ignored.
SP2-0734: unknown command beginning Other temp... - rest of line ignored.
ALTER TABLESPACE TEMP ADD TEMPFILE '/u02/oracle/oradata/dvbco2/temp_01.dbf'
REUSE
*
ERROR at line 1:
ORA-01109: database not open


SP2-0734: unknown command beginning End of tem... - rest of line ignored.
SQL recover database
ORA-00283: recovery session canceled due to errors
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done


o arquivo de control file é

CREATE CONTROLFILE SET DATABASE ORARBOHO RESETLOGS NOARCHIVELOG
MAXLOGFILES 32
MAXLOGMEMBERS 2
MAXDATAFILES 1024
MAXINSTANCES 1
MAXLOGHISTORY 13120
LOGFILE
  GROUP 1 '/u5/oradata/orarboho/log1a.log'  SIZE 1M,
  GROUP 2 '/u5/oradata/orarboho/log2a.log'  SIZE 1M,
  GROUP 3 '/u5/oradata/orarboho/log3b.log'  SIZE 1M
DATAFILE
  '/u5/oradata/orarboho/system_01.dbf',
  '/u5/oradata/orarboho/f_01.dbf',
  '/u5/oradata/orarboho/f_01.dbf',
  '/u5/oradata/orarboho/rbs_01.dbf',
  '/u5/oradata/orarboho/o_data_01.dbf',
  '/u5/oradata/orarboho/rs_01.dbf',
  '/u5/oradata/orarboho/io_index_01.dbf',
  '/u5/oradata/orarboho/co_data_01.dbf',
  '/u5/oradata/orarboho/co_index_01.dbf',
  '/u5/oradata/orarboho/oject_data_01.dbf',
  '/u5/oradata/orarboho/ac_index_02.dbf',
  '/u5/oradata/orarboho/s_data_01.dbf',
  '/u5/oradata/orarboho/s_index_01.dbf',
  '/u5/oradata/orarboho/e_index_01.dbf',
  '/u5/oradata/orarboho/idge_data_01.dbf'
CHARACTER SET WE8ISO8859P1
;
# Recovery is required if any of the datafiles are restored backups,
# or if the last shutdown was not normal or immediate.
RECOVER DATABASE
# Database can now be opened zeroing the online logs.
ALTER DATABASE OPEN RESETLOGS;
# Commands to add tempfiles to temporary tablespaces.
# Online tempfiles have complete space information.
# Other tempfiles may require adjustment.
ALTER TABLESPACE TEMP ADD TEMPFILE '/u02/oracle/oradata/dvbco2/temp_01.dbf'
REUSE;
# End of tempfile additions.
#



On 4/6/06, Andre Campos [EMAIL PROTECTED] wrote:

  Cara,

 Quando vc gerar o trace com o comando :ALTER DATABASE BACKUP CONTROFILE TO
 TRACE RESETLOGS , ao editar o arquivo troque o REUSE por SET e na linha de
 recover troque o RECOVER DATABASE USING BACKUP CONTROLFILE por apenas
 RECOVER DATABASE,
 e depois ALTER DATABASE OPEN RESETLOGS, isso deve funcionar.


 Abraço.

 André Campos

 -- Início da mensagem original ---

 De: oracle_br@yahoogrupos.com.br
 Para: oracle_br@yahoogrupos.com.br
 Cc:
 Data: Thu, 6 Apr 2006 15:27:05 -0300

 Assunto: Re: [oracle_br] Exp  Imp utilizando o Data Pump
 
  kra... tem certeza q funciona ?
  estou obtendo o erro :
  ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
  quando tento alter database open resetlogs
  ORA-01194: file 1 needs more recovery to be consistent
  ORA-01110: data file 1: '/u5/oradata/orarboho/system_01.dbf'
  Lembrando q as duas maquinas não estão em Archive
  On 3/31/06, Reginaldo F. Silva wrote:
  
  
   Os caminhos serao ajustados no arquivo gerado
  '\ControlFile.out

  
  
  
   Atenciosamente,
  
   Reginaldo de Fáveri da Silva
   Administrador de Banco de Dados
   Oracle 8i Certified
   Softplan Plan. Sist. Ltda.
   Fone.:(0xx48) 3027-8000
   Sistema da Qualidade Certificado
   ISO9001-BVQI/INMETRO
  
  
   -Mensagem original-
   De: oracle_br@yahoogrupos.com.br
  [mailto:[EMAIL PROTECTED] Em
   nome de Marcelo Cauduro
   Enviada em: sexta-feira, 31 de março de 2006 13:17
  
   Para: oracle_br@yahoogrupos.com.br
   Assunto: Re: [oracle_br] Exp  Imp utilizando o Data Pump
  
  
   Não ira dar problema nos datafiles ? eles não estão com o diretorio
  da
   outra
   maquina ?
  
   On 3/31/06, Reginaldo F. Silva wrote:
   
   
   
Outra maneira sem usar Exp/Imp
   
set oracle_sid=SID1
sqlplus / as sysdba
alter database backup controlfile to trace as
   '\ControlFile.out'

reuse;
shutdown immediate;
exit;
   
faça uma cópia fria do banco renomeando a pasta para o caminho
  desejado
(ex: F:\Oradata\Base1 - G:\Oradata\Base2)
   
set oracle_sid=SID1
sqlplus / as sysdba
startup
exit;
   
edite o arquivo \ControlFile.out e ajuste o novo nome

  base e
caminho.
Ex:
CREATE CONTROLFILE REUSE DATABASE OLD_NAME NORESETLOGS

Re: [oracle_br] ORA-01031: insufficient privileges

2006-04-05 Por tôpico Marcelo Cauduro
Como esta o seu sqlnet.ora ?

On 4/1/06, Igor Graminhani [EMAIL PROTECTED] wrote:

  Ola pessoal,

 Estou tentando conectar num banco de teste e está aparecendo a
 seguinte mensagem de erro: ORA-01031: insufficient privileges

 Esse erro acontece com qualquer usuário que eu tente logar no banco,
 seja, como SYS ou SYSTEM, porém esse erro acontece apenas na
 instância ISMTESTE

 Bem, tentamos recriar o arquivo de senha no Servidor Linux (servidor
 onde se encontra a instância ISMTESTE) através do ORAPWD, conforme
 comando abaixo:

 orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=senha

 (obs: no init.ora o parâmetro remote_login_passwordfile já
 está 'EXCLUSIVE')

 Porém, ainda persiste o erro. O que poderia ser feito para corrigir
 esse erro e acessar o banco?

 Obrigado,

 Igor














 --
 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
 __
 O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha
 o link do mesmo para evitar trafego(pedidos) desnecessário.


 --
 *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][EMAIL PROTECTED]

- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo! http://br.yahoo.com/info/utos.html.




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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
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] Re: TkProf - LIOs

2006-04-05 Por tôpico Marcelo Cauduro
Alguem tem ideia ?

On 4/3/06, Marcelo Cauduro [EMAIL PROTECTED] wrote:

 No relatorio do tkprof, o total de LIOs é igual a query + current ou
 apenas o valor de query ?

 Exemplo :

 call count   cpuelapsed   disk  query
 currentrows
 --- --   -- -- -- --
 --
 Parse0  0.00   0.00  0  0
 0   0
 Execute 10  6.20   5.78  0  0
 0   0
 Fetch   10  4.14   3.70  0 20  0
 10
 --- --   -- -- -- --
 --
 total   20 10.34   9.48  0 20  0
 10

 PIO = 0 (valor de disk)
 LIO = 20 (valor de current)

 Seria isso ???




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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
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

 





Re: [oracle_br] Re: TkProf - LIOs

2006-04-05 Por tôpico Marcelo Cauduro
Como vcs costumam fazer a analise num trace ?

On 4/5/06, Anderson Haertel Rodrigues [EMAIL PROTECTED]
wrote:

  Olá Marcelo,

 Deve ser Query + Current.

 Att,

 Anderson Haertel Rodrigues
 Administrador de Banco de Dados - DBA
 Florianópolis/SC

 --- Marcelo Cauduro [EMAIL PROTECTED] escreveu:


  Alguem tem ideia ?
 
  On 4/3/06, Marcelo Cauduro [EMAIL PROTECTED]
  wrote:
  
   No relatorio do tkprof, o total de LIOs é igual a
  query + current ou
   apenas o valor de query ?
  
   Exemplo :
  
   call count   cpuelapsed   disk
   query
   currentrows
   --- --   -- --
  -- --
   --
   Parse0  0.00   0.00  0
   0
   0   0
   Execute 10  6.20   5.78  0
   0
   0   0
   Fetch   10  4.14   3.70  0
  20  0
   10
   --- --   -- --
  -- --
   --
   total   20 10.34   9.48  0
  20  0
   10
  
   PIO = 0 (valor de disk)
   LIO = 20 (valor de current)
  
   Seria isso ???
  
  
 
 
  [As partes desta mensagem que não continham texto
  foram removidas]
 
 
 
 

 --
  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
 
 __
  O grupo Oracle_br não aceita anexos. Quando oferecer
  algum arquivo, tenha o link do mesmo para evitar
  trafego(pedidos) desnecessário.
  Links do Yahoo! Grupos
 
 
 
  http://br.yahoo.com/info/utos.html
 
 
 
 
 
 









 ___
 Yahoo! doce lar. Faça do Yahoo! sua homepage.
 http://br.yahoo.com/homepageset.html



 --
 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
 __
 O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha
 o link do mesmo para evitar trafego(pedidos) desnecessário.


  *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
 http://br.ard.yahoo.com/SIG=12fi8b1rb/M=365837.7000707.7924794.2369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1144263874/A=3365371/R=2/id=noscript/SIG=110csbogi/*http://www.yahoo.com.br/cinema
 --
 *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][EMAIL PROTECTED]

- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo! http://br.yahoo.com/info/utos.html.




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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
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

 




Re: [oracle_br] Re: TkProf - LIOs

2006-04-05 Por tôpico Marcelo Cauduro
Obrigado pela dica, vou dar uma olhada.

On 4/5/06, Anderson Haertel Rodrigues [EMAIL PROTECTED]
wrote:

  Marcelo,

 Tu desejas saber como fazer tuning ou apenas analisar
 o resultado do TKPROF?

 São coisas diferentes. O que você realmente deseja?

 Se for Analisar o resultado do tkprof eu sugiro a
 leitura com calma e endentendo bem de dois PDFs da
 Oracle (documentação oficial):

 Database Performance Planning.pdf
 Database Performance Tuning Guide and Reference.pdf

 Este último explica bem detalhamente a sintaxe do
 TKPROF bem como o que é cada retorno do mesmo.

 Se for fazer Tuning é mais abrangente e complexo.
 Seriam algumas indicações (algumas até já passaram
 pela lista), somando conhecimento+experiência.


 Att,

 Anderson Haertel Rodrigues
 Administrador de Banco de Dados - DBA
 Florianópolis/SC

 --- Marcelo Cauduro [EMAIL PROTECTED] escreveu:

  Como vcs costumam fazer a analise num trace ?
 
  On 4/5/06, Anderson Haertel Rodrigues
  [EMAIL PROTECTED]
  wrote:
  
Olá Marcelo,
  
   Deve ser Query + Current.
  
   Att,
  
   Anderson Haertel Rodrigues
   Administrador de Banco de Dados - DBA
   Florianópolis/SC
  
   --- Marcelo Cauduro [EMAIL PROTECTED] escreveu:
  
  
Alguem tem ideia ?
   
On 4/3/06, Marcelo Cauduro [EMAIL PROTECTED]
wrote:

 No relatorio do tkprof, o total de LIOs é
  igual a
query + current ou
 apenas o valor de query ?

 Exemplo :

 call count   cpuelapsed   disk
 query
 currentrows
 --- --   -- --
-- --
 --
 Parse0  0.00   0.00  0
 0
 0   0
 Execute 10  6.20   5.78  0
 0
 0   0
 Fetch   10  4.14   3.70  0
20  0
 10
 --- --   -- --
-- --
 --
 total   20 10.34   9.48  0
20  0
 10

 PIO = 0 (valor de disk)
 LIO = 20 (valor de current)

 Seria isso ???


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

 --
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
   
  
 
 __
O grupo Oracle_br não aceita anexos. Quando
  oferecer
algum arquivo, tenha o link do mesmo para evitar
trafego(pedidos) desnecessário.
Links do Yahoo! Grupos
   
   
   
http://br.yahoo.com/info/utos.html
   
   
   
   
   
   
  
  
  
  
  
  
  
  
  
  
 
 ___
   Yahoo! doce lar. Faça do Yahoo! sua homepage.
   http://br.yahoo.com/homepageset.html
  
  
  
  
 

 --
   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
  
 
 __
   O grupo Oracle_br não aceita anexos. Quando
  oferecer algum arquivo, tenha
   o link do mesmo para evitar trafego(pedidos)
  desnecessário.
  
  
*Yahoo! Grupos, um serviço oferecido por:*
  PUBLICIDADE
  
 
 
 http://br.ard.yahoo.com/SIG=12fi8b1rb/M=365837.7000707.7924794.2369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1144263874/A=3365371/R=2/id=noscript/SIG=110csbogi/*http://www.yahoo.com.br/cinema
 
   --
   *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]
 [EMAIL PROTECTED]

  
  - O uso que você faz do Yahoo! Grupos está
  sujeito aos Termos do
  Serviço do Yahoo!
  http://br.yahoo.com/info/utos.html.

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

[oracle_br] Instancias iguais com RBO com resultados diferentes - indo em busca do CBO

2006-04-05 Por tôpico Marcelo Cauduro
Pessoal,

Essa ta me quebrando a cabeça,
é o seguinte:

Estou ajudando na migracao de otimizador de regras para custo.
Ja pegamos varios papers, muitos recomendados pela lista.
Entretanto, queria ter uma instancia na mesma maquina para fazer
comparações.
Tipo, no custo demorou X minutos e com regras Y minutos.

Lembrando que a maquina de Custo é um Oracle 10g e a de regra um Oracle 8i.

Mas antes de começar as comparações de Custo e Regra, quero me assegurar que
a instancia
de regra nessa maquina esta tendo o mesmo desempenho com Regra do que em outra
maquina bastante usado pelos desenvolvedores (hardware igual).

Mas ta dando uma baita diferenca nos testes

Os inits.ora das duas estão iguais ( com excessao que o db_block_size da
mais rapida
esta 4k e o da mais lenta esta 8k, mas acho q naum eh isso).

Alguem sabe como consigo definir o porque da diferença ?

Vou colocar abaixo o init das duas instancias, chamar a mais rapida de
sidA e a mais lenta de sidB.

Lembrando que a sidB eu quero usar como comparativo
com a maquina Custo, mas não ta dando, afinal , ela não tem se mostrado
igual a outra
instancia da outra maquina com Regra.

Outro ponto :

Como estou fazendo comparaçoes, deixei a estrutura das tabelas identicas
init_trans,maxmintudo igual... linha iguais

Quem pode me dar uma luz ?


--

sidB

db_name = sidB
instance_name = sidB
service_names = sidB
control_files = (/u1/oracle/oradata/sidB/control01.ctl,
/u4/oracle/oradata/sidB/control02.ctl,
/u4/oracle/oradata/sidB/control03.ctl)
open_cursors = 1500
max_enabled_roles = 80
db_block_buffers = 2048
shared_pool_size = 50331648
shared_pool_reserved_size=5033164
large_pool_size = 8192000
java_pool_size = 2500
log_checkpoint_interval = 1
log_checkpoint_timeout = 1800
processes = 350
log_buffer = 163840

background_dump_dest = /u1/app/oracle/admin/sidB/bdump
core_dump_dest = /u1/app/oracle/admin/sidB/cdump
user_dump_dest = /u1/app/oracle/admin/sidB/udump
db_block_size = 8192
remote_login_passwordfile = exclusive
os_authent_prefix = 
compatible = 8.1.7
sort_area_size = 65536
sort_area_retained_size = 65536
event=36 trace name errorstack level 3
_complex_view_merging=true

--

sidA

db_name = sidA
instance_name = sidA
service_names = sidA
control_files = (/u01/oracle/oradata/sidA/control01.ctl,
/u02/oracle/oradata/sidA/control02.ctl)
open_cursors = 1500
max_enabled_roles = 80
db_block_buffers = 2048
shared_pool_size = 50331648
shared_pool_reserved_size=5033164
large_pool_size = 8192000
java_pool_size = 2500
log_checkpoint_interval = 1
log_checkpoint_timeout = 1800
processes = 350
log_buffer = 163840
rollback_segments = ( R04, R01, R02, R03 )


background_dump_dest = /u01/app/oracle/admin/sidA/bdump
core_dump_dest = /u01/app/oracle/admin/sidA/cdump
user_dump_dest = /u01/app/oracle/admin/sidA/udump
db_block_size = 4096
remote_login_passwordfile = exclusive
os_authent_prefix = 
compatible = 8.1.7
sort_area_size = 65536
sort_area_retained_size = 65536
event=36 trace name errorstack level 3

_complex_view_merging=true

--


TKPROF

sidB

declare
  teste date;
begin
  for i in 1..259635 loop
teste := sBcRoundDiaUtil(to_date('11-jan-06'));
  end loop;
end;

call count   cpuelapsed   disk  querycurrent
rows
--- --   -- -- -- --
--
Parse1  0.00   0.00  0  0
0   0
Execute  1 41.02  41.73  0  0
0   1
Fetch0  0.00   0.00  0  0
0   0
--- --   -- -- -- --
--
total2 41.02  41.73  0  0
0   1

Misses in library cache during parse: 0
Optimizer goal: RULE
Parsing user id: 20


select user#
from
 sys.user$ where name = 'OUTLN'


call count   cpuelapsed   disk  querycurrent
rows
--- --   -- -- -- --
--
Parse1  0.00   0.00  0  0
0   0
Execute  1  0.00   0.00  0  0
0   0
Fetch1  0.00   0.00  0  2
0   1
--- --   -- -- -- --
--
total3  0.00   0.00  0  2
0   1

Misses in library cache during parse: 0
Optimizer goal: RULE
Parsing user id: SYS   (recursive depth: 2)

Rows Row Source Operation
---  ---
  1  TABLE ACCESS BY INDEX ROWID USER$
  1   INDEX UNIQUE SCAN 

Re: [oracle_br] Re: Instancias iguais com RBO com resultados diferentes - indo em busca do CBO

2006-04-05 Por tôpico Marcelo Cauduro
Chiappa, concordo absolutamente com vc... pois tenho seguido seus
comentarios a risca... mas aqui o problema é que quero comparar um RBO com
CBO... da para fazer isso em 10g ?

pensando q nao, a minha ideia foi , instalo uma instancia 8i igual a que o
pessoal usa no desenvolvimento e comparo com a 10g,... mas o problema é:
essa instancia de 8i em RBO ta mais lerdo que a instancia de 8i em RBO q o
pessoal utiliza no desenvolvimento
por isso coloquei no email os parametros das duas 8i
dai qndo conseguir ver o pq da diferenca entre as duas 8i.,. iria
compara-las com 10g

mas se naum for possivel essa comparacao, com o que posso comparar a 10g ?
se eu colocar RULE no 10g vai funcionar ?
porque poderia criar uma nova instancia de10g...

mas mesmo se fosse possivel fazer isso com 10g...
gostaria que me ajudassem a identificar o porque dessas duas instancia
iguais, em maquinas diferentes, com hardwares iguais, darem tempos
diferentes

On 4/5/06, jlchiappa [EMAIL PROTECTED] wrote:

  Colega, quando vc diz :


 Lembrando que a maquina de Custo é um Oracle 10g e a de regra um
 Oracle 8i.

 já de cara eu digo, ENORMES chances de não funcionar direito, 8i é
 absolutamente DIFERENTE de 10g, testes preferencialmente TEM QUE ser
 feitos em versões idênticas - no seu caso isso é AUMENTADO em muito,
 pois há n+1 parâmetros que já são setados por default ou criados no
 banco default do 10g que DIFEREM RADICALMENTE do 8i...

 E como dito em outra thread aqui, CBO ** implica ** em estatísticas,
 histogramas, configs as mais diversas sendo exigidas, vc FEZ isso, se
 não fez não funciona direito MESMO.

 []s

 Chiappa

 --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro
 [EMAIL PROTECTED] escreveu

 
  Pessoal,
 
  Essa ta me quebrando a cabeça,
  é o seguinte:
 
  Estou ajudando na migracao de otimizador de regras para custo.
  Ja pegamos varios papers, muitos recomendados pela lista.
  Entretanto, queria ter uma instancia na mesma maquina para fazer
  comparações.
  Tipo, no custo demorou X minutos e com regras Y minutos.
 
  Lembrando que a maquina de Custo é um Oracle 10g e a de regra um
 Oracle 8i.
 
  Mas antes de começar as comparações de Custo e Regra, quero me
 assegurar que
  a instancia
  de regra nessa maquina esta tendo o mesmo desempenho com Regra do
 que em outra
  maquina bastante usado pelos desenvolvedores (hardware igual).
 
  Mas ta dando uma baita diferenca nos testes
 
  Os inits.ora das duas estão iguais ( com excessao que o
 db_block_size da
  mais rapida
  esta 4k e o da mais lenta esta 8k, mas acho q naum eh isso).
 
  Alguem sabe como consigo definir o porque da diferença ?
 
  Vou colocar abaixo o init das duas instancias, chamar a mais rapida
 de
  sidA e a mais lenta de sidB.
 
  Lembrando que a sidB eu quero usar como comparativo
  com a maquina Custo, mas não ta dando, afinal , ela não tem se
 mostrado
  igual a outra
  instancia da outra maquina com Regra.
 
  Outro ponto :
 
  Como estou fazendo comparaçoes, deixei a estrutura das tabelas
 identicas
  init_trans,maxmintudo igual... linha iguais
 
  Quem pode me dar uma luz ?
 
 
  
 --
 
  sidB
 
  db_name = sidB
  instance_name = sidB
  service_names = sidB
  control_files = (/u1/oracle/oradata/sidB/control01.ctl,
  /u4/oracle/oradata/sidB/control02.ctl,
  /u4/oracle/oradata/sidB/control03.ctl)
  open_cursors = 1500
  max_enabled_roles = 80
  db_block_buffers = 2048
  shared_pool_size = 50331648
  shared_pool_reserved_size=5033164
  large_pool_size = 8192000
  java_pool_size = 2500
  log_checkpoint_interval = 1
  log_checkpoint_timeout = 1800
  processes = 350
  log_buffer = 163840
 
  background_dump_dest = /u1/app/oracle/admin/sidB/bdump
  core_dump_dest = /u1/app/oracle/admin/sidB/cdump
  user_dump_dest = /u1/app/oracle/admin/sidB/udump
  db_block_size = 8192
  remote_login_passwordfile = exclusive
  os_authent_prefix = 
  compatible = 8.1.7
  sort_area_size = 65536
  sort_area_retained_size = 65536
  event=36 trace name errorstack level 3
  _complex_view_merging=true
 
  
 --
 
  sidA
 
  db_name = sidA
  instance_name = sidA
  service_names = sidA
  control_files = (/u01/oracle/oradata/sidA/control01.ctl,
  /u02/oracle/oradata/sidA/control02.ctl)
  open_cursors = 1500
  max_enabled_roles = 80
  db_block_buffers = 2048
  shared_pool_size = 50331648
  shared_pool_reserved_size=5033164
  large_pool_size = 8192000
  java_pool_size = 2500
  log_checkpoint_interval = 1
  log_checkpoint_timeout = 1800
  processes = 350
  log_buffer = 163840
  rollback_segments = ( R04, R01, R02, R03 )
 
 
  background_dump_dest = /u01/app/oracle/admin/sidA/bdump
  core_dump_dest = /u01/app/oracle/admin/sidA/cdump
  user_dump_dest = /u01/app/oracle/admin/sidA/udump
  db_block_size = 4096
  remote_login_passwordfile = exclusive

Re: [oracle_br] Re: ORA-01031: insufficient privileges

2006-04-05 Por tôpico Marcelo Cauduro
Tentou comentar a linha SQLNET.AUTHENTICATION_SERVICES= (NTS) ?

colocando
# SQLNET.AUTHENTICATION_SERVICES= (NTS)

???

On 4/5/06, Igor Graminhani [EMAIL PROTECTED] wrote:

  O sqlnet.ora do banco de desenvolvimento estava assim:

 # SQLNET.ORA Network Configuration
 File: /app/oracle/product/9ir2/network/admin/sqlnet.ora
 # Generated by Oracle configuration tools.

 SQLNET.AUTHENTICATION_SERVICES= (NTS)

 NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)

 NAMES.DEFAULT_DOMAIN = site

 Porém, já tentei alterar o parametro SQLNET.AUTHENTICATION_SERVICES=
 (NONE), mas não funcionou.

 Atenciosamente,

 Igor

 --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro
 [EMAIL PROTECTED] escreveu

 
  Como esta o seu sqlnet.ora ?
 
  On 4/1/06, Igor Graminhani [EMAIL PROTECTED] wrote:
  
Ola pessoal,
  
   Estou tentando conectar num banco de teste e está aparecendo a
   seguinte mensagem de erro: ORA-01031: insufficient privileges
  
   Esse erro acontece com qualquer usuário que eu tente logar no
 banco,
   seja, como SYS ou SYSTEM, porém esse erro acontece apenas na
   instância ISMTESTE
  
   Bem, tentamos recriar o arquivo de senha no Servidor Linux
 (servidor
   onde se encontra a instância ISMTESTE) através do ORAPWD,
 conforme
   comando abaixo:
  
   orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=senha
  
   (obs: no init.ora o parâmetro remote_login_passwordfile já
   está 'EXCLUSIVE')
  
   Porém, ainda persiste o erro. O que poderia ser feito para
 corrigir
   esse erro e acessar o banco?
  
   Obrigado,
  
   Igor
  
  
  
  
  
  
  
  
  
  
  
  
  
  
   -
 -
   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
  
 __
   O grupo Oracle_br não aceita anexos. Quando oferecer algum
 arquivo, tenha
   o link do mesmo para evitar trafego(pedidos) desnecessário.
  
  
   --
   *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]oracle_br-
 [EMAIL PROTECTED]

  
  - O uso que você faz do Yahoo! Grupos está sujeito aos Termos
 do
  Serviço do Yahoo! http://br.yahoo.com/info/utos.html.
  
  
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 







 --
 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
 __
 O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha
 o link do mesmo para evitar trafego(pedidos) desnecessário.


 --
 *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][EMAIL PROTECTED]

- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo! http://br.yahoo.com/info/utos.html.




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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http

Re: [oracle_br] Re: Instancias iguais com RBO com resultados diferentes - indo em busca do CBO

2006-04-05 Por tôpico Marcelo Cauduro
Então ficam mais 5 questões :

- o db_block_size afeta a performance de um oltp ? ou melhor, de 4kb para
8kb da diferenca ?

- posso comparar um 8i e um 10g na mesma maquina - o 8i com RBO e o 10g com
CBO , esperando que o 10g seja igual ou mais rapido ?

- se eu coloco RBO no 10g, ele suporta então regras ? mas a questão é, ele
com Regras vai ser mais performatico que um 8i com regra ?

- qual sua sugestão para fins comparativos , comparar o 10g CBO com o 8i RBO
ou com o 10g RBO (se puder e for mais performatico que o 8i com regras)
?

- parametros do init file mudaram do 8i para o 10g, tem algum documento onde
consiga ter uma detalhamento disso para tentar configura-los o mais igual
possivel ?

Obrigado.


On 4/5/06, jlchiappa [EMAIL PROTECTED] wrote:

  Peraí, vamos por partes : inicialmente, se vc tem duas instâncias 8i
 em RBO em duas máquinas diferentes com as mesmas configs, mesmas
 tabelas, realmente idênticas, mas com performance mutíssimo
 diferente, será que simplesmente a CARGA das máquinas não está
 diferente - ie, se ma máquina de desenvolvimento vc só tem o banco de
 desenvolvimento com meia dúzia de sessões MAS o outro banco está na
 máquina produção (onde obviamente ele NÂO está sozinho, há n+1
 rodando nela) não vai MESMO dar par comparar coisa alguma, pois a
 máquina produção , sendo submetida a uma CARGA muito maior, com taxa
 de I/O e de uso de CPU ambas lá em cima, só pode mesmo ser lenta...
 Por isso é que o ideal seria vc ter uma máquina HOMOLOGAÇÂO, ie,
 semelhante à Produção mas sem a carga toda que produção suporta,
 justamente pra vc poder passar essa homologação pra CBO, aí sim, vc
 teria em máquinas com cargas parecidas, params iguais, hardwares o
 mais parecido possível, aí SIM dá pra vc apontar ah, é o RBO aqui, é
 o CBO ali só que está pegando.
 Quanto ao 10g, vc até pode rodá-lo sim em RBO, não é suportado mas
 pro teste inicial, ok.


 []s

 Chiappa
 --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro
 [EMAIL PROTECTED] escreveu
 
  Chiappa, concordo absolutamente com vc... pois tenho seguido seus
  comentarios a risca... mas aqui o problema é que quero comparar um
 RBO com
  CBO... da para fazer isso em 10g ?
 
  pensando q nao, a minha ideia foi , instalo uma instancia 8i igual
 a que o
  pessoal usa no desenvolvimento e comparo com a 10g,... mas o
 problema é:
  essa instancia de 8i em RBO ta mais lerdo que a instancia de 8i em
 RBO q o
  pessoal utiliza no desenvolvimento
  por isso coloquei no email os parametros das duas 8i
  dai qndo conseguir ver o pq da diferenca entre as duas 8i.,. iria
  compara-las com 10g
 
  mas se naum for possivel essa comparacao, com o que posso comparar
 a 10g ?
  se eu colocar RULE no 10g vai funcionar ?
  porque poderia criar uma nova instancia de10g...
 
  mas mesmo se fosse possivel fazer isso com 10g...
  gostaria que me ajudassem a identificar o porque dessas duas
 instancia
  iguais, em maquinas diferentes, com hardwares iguais, darem tempos
  diferentes
 
  On 4/5/06, jlchiappa [EMAIL PROTECTED] wrote:
  
Colega, quando vc diz :
  
  
   Lembrando que a maquina de Custo é um Oracle 10g e a de regra um
   Oracle 8i.
  
   já de cara eu digo, ENORMES chances de não funcionar direito, 8i é
   absolutamente DIFERENTE de 10g, testes preferencialmente TEM QUE
 ser
   feitos em versões idênticas - no seu caso isso é AUMENTADO em
 muito,
   pois há n+1 parâmetros que já são setados por default ou criados
 no
   banco default do 10g que DIFEREM RADICALMENTE do 8i...
  
   E como dito em outra thread aqui, CBO ** implica ** em
 estatísticas,
   histogramas, configs as mais diversas sendo exigidas, vc FEZ
 isso, se
   não fez não funciona direito MESMO.
  
   []s
  
   Chiappa
  
   --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro
   [EMAIL PROTECTED] escreveu
  
   
Pessoal,
   
Essa ta me quebrando a cabeça,
é o seguinte:
   
Estou ajudando na migracao de otimizador de regras para custo.
Ja pegamos varios papers, muitos recomendados pela lista.
Entretanto, queria ter uma instancia na mesma maquina para fazer
comparações.
Tipo, no custo demorou X minutos e com regras Y minutos.
   
Lembrando que a maquina de Custo é um Oracle 10g e a de regra um
   Oracle 8i.
   
Mas antes de começar as comparações de Custo e Regra, quero me
   assegurar que
a instancia
de regra nessa maquina esta tendo o mesmo desempenho com Regra
 do
   que em outra
maquina bastante usado pelos desenvolvedores (hardware igual).
   
Mas ta dando uma baita diferenca nos testes
   
Os inits.ora das duas estão iguais ( com excessao que o
   db_block_size da
mais rapida
esta 4k e o da mais lenta esta 8k, mas acho q naum eh isso).
   
Alguem sabe como consigo definir o porque da diferença ?
   
Vou colocar abaixo o init das duas instancias, chamar a mais
 rapida
   de
sidA e a mais lenta de sidB.
   
Lembrando que a sidB eu quero usar como comparativo
com

Re: [oracle_br] Re: Instancias iguais com RBO com resultados diferentes - indo em busca do CBO

2006-04-05 Por tôpico Marcelo Cauduro
Chiapa, Valeu pelas respostas, elas eram o que eu precisava.

On 4/5/06, jlchiappa [EMAIL PROTECTED] wrote:

 seguem as respostas pra cada item :


 --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
 escreveu
 
  Então ficam mais 5 questões :
 
  - o db_block_size afeta a performance de um oltp ? ou melhor, de 4kb
 para
  8kb da diferenca ?

 Normalmente não muito - veja vc, a diferença principal de um block de
 4 Kb pra um de 8 Kb é que no bloco maior há menos chance de
 frequentemente houver registro que não coube inteiro no bloco e é
 alocado novo bloco, mas tipicamente num oltp, bem normalizado, não há
 registros tão longos, então nem isso. Normalmente o pessoal opta por 8
 kb porque é um valor médio de bloco, funciona bem nem é um dos menores
 valores que pode levar à maior frequencia de regs migrados ou I/O
 muito pequeno, nem é dos maiores onde pode haver um pouco mais de
 espaço não-usado ou I/O um pouco mais excessivo.
   Mas não, não vi até hoje um caso onde duas máquinas com mesma versão
 de banco , os parâmetros iguais, carga de máquina igual, dê diferença
 significativa por causa de block size, a não ser em casos extremos
 (ie, usa o menor de todos, 2 Kb , ou o maior , normalmente 32 Kb).


 
  - posso comparar um 8i e um 10g na mesma maquina - o 8i com RBO e o
 10g com
  CBO , esperando que o 10g seja igual ou mais rapido ?

 Pode, a questão só é que eventualmente outra sessão pode , em tese, a
 qquer momento disparar alguma coisa pesada no outro banco, aí a
 máquina sobrecarregada, o CBO até monta o melhor plano possível mas
 por causa da carga causada pela outra sessão mesmo esse melhor plano
 demora... Esse é que é o X de vc estar testando numa máquina com
 outras coisas rodando, às vezes fica difícil vc filtrar interferências
 das outras coisas naquilo que vc está testando, é por isso que é
 RECOMENDADO se fazer isso em outra máquina só com a coisa a testar...

 

  - se eu coloco RBO no 10g, ele suporta então regras ?

 Por suporta vc quer dizer se funciona ? Sim, tranquilamente
 funcionar funciona, mas com certeza a Oracle não recomenda, e afaik
 não dá suporte.



 mas a questão é, ele
  com Regras vai ser mais performatico que um 8i com regra ?

 A tendência não é : se tudo o resto for igual, provavelmente 10g em
 modo de regra deve ser basicamente idêntico ao 8i em modo de regra,
 pois o otimizador de regras não muda desde a versão 7 do banco... As
 chances de vc eventualmente obter performance melhor no 10g são
 pequenas, só mesmo se alguma das features novas dele que não dependa
 de otimizador proporcionarem isso (como por exemplo afaik são o array
 size automático em pl/sql, as melhorias de redo, os gerenciamentos
 automatizados de SGA, etc) - na prática, porém, o meu palpite é que se
 o 8i em rbo estiver com redo log bem tunado, já estiver fazendo algum
 array processing onde necessário, tiver a SGA bem dimensionadinha,
 etc, não vejo muita margem para grandes diferenças.


  - qual sua sugestão para fins comparativos , comparar o 10g CBO com
 o 8i RBO
  ou com o 10g RBO (se puder e for mais performatico que o 8i com regras)
  ?

 Minha sugestão é simples : imagino que vc está com o 10g no meio
 porque quer migrar pra ele no final das contas, certo ?? Então a idéia
 é , numa máquina de homologação, o mais semelhante possível à
 Produção, tenha o 8i em regra, que nem a produção, uma vez comprovado
 por testes que a performance está basicamente idêntica vc passa esse
 banco pra CBO (e faz TODOS os settings necessários pro CBO funcionar,
 vai haver queries que talvez vc tenha que alterar, terá que coletar
 stats, determinar necessidade de histogramas, enfim, mexer bastante, o
 que é relativamente extenso), uma vez isso feito e testado e obtido
 algum ganho (que deve sim haver no CBO), e eventualmente ajustadas as
 relativamente poucas queries que precisarem, aí sim demonstrado que o
 CBO foi bem, só aí vc migra pra 10g : acho que fazer duas alterações
 pesadas (ie, ir de RBO pra CBO , e de 8i pora 10g ) numa tacada só é
 por demais arriscado.

 []s

 Chiappa







 --

 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
 __
 O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha
 o link do mesmo para evitar trafego(pedidos) desnecessário.



   *Yahoo! Grupos, um serviço oferecido por:*   PUBLICIDADE

 http://br.ard.yahoo.com/SIG=12fd72ua0/M=399886.8024024.9109235.2369893

[oracle_br] Rollback Segments

2006-04-03 Por tôpico Marcelo Cauduro
Por que os segmentos de rollback ficam offline depois dar shutdown ?
Eu criei eles numa tablespace diferente da system.
O oracle é o 8i.

Tem como deixa-los online automaticamente ?


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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
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] TkProf - LIOs

2006-04-03 Por tôpico Marcelo Cauduro
No relatorio do tkprof, o total de LIOs é igual a query + current ou
apenas o valor de query ?

Exemplo :

call count   cpuelapsed   disk  querycurrent
rows
--- --   -- -- -- --
--
Parse0  0.00   0.00  0  0
0   0
Execute 10  6.20   5.78  0  0
0   0
Fetch   10  4.14   3.70  0 20  0
10
--- --   -- -- -- --
--
total   20 10.34   9.48  0 20  0
10

PIO = 0 (valor de disk)
LIO = 20 (valor de current)

Seria isso ???


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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
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] TRACE

2006-04-03 Por tôpico Marcelo Cauduro
Para gerar o TRACE file eu uso o comando

alter session set sql_trace=true

e ele gera um arquivo com nome ora_XXX.trc... o que seria esse XXX ? tem
como eu espcificar um nome ?

outra cosia, tem como gerar um arquivo de trace novo apenas emitindo um
comando ?
Por exemplo, se eu de alter session set sql_trace=false e alter session set
sql_trace=true ele cria novo arquivo de trace e deixa de usar o mesmo ? pois
ele atualmente usa o mesmo arquivo mesmo se eu der alter session set
sql_trace=false

Valeu.


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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
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

 




Re: [oracle_br] Re: Copiar bancos

2006-04-02 Por tôpico Marcelo Cauduro
Legal !!! onde esta pasta com esses scripts ?
pois naum achei na pagina do grupo nenhuma pasta do chiapa

Valew.

On 4/2/06, Luis Claudio Arruda Figueiredo [EMAIL PROTECTED]
wrote:

  Marcelo boa tarde.

 O que o chiappa quiz dizer é que se o seu servidor é
 multi processado você pode utilizar todos os ecursos
 da sua máquina.

 Ex..:Se você possui 4 schemas em uma máquina com 4
 procs você pode fazer o exp em paralelo dos 4, ou se
 possuir apenas 1 schema vocÇe pode dividir as tabelas
 em uma range de 4 e fazer o exp.

 O chiappa a alguns meses disponibilizou na web uma
 pasta com vários scripts (até hoje não consegui ler
 todos) e lá também tem um how to de exp imp.

 e você pode utilizar o exp help=y para verificar o
 help dos parâmetros do exp imp.

 abs,

 Luis Figueiredo.
 --- Marcelo Cauduro [EMAIL PROTECTED] escreveu:


 -

 Essas dicas realmente foram incriveis !!!

 mas ficaram algumas duvidas...

 o chiappa falou de

 ***vc primeiro faz ** vários
 ** exps em paralelo (quantas a tua máquina suportar
 sem arrear), só
 de dados, cada um pegando uma porção das tabelas*
 **
 como pegart essa uma porcao de tabelas ? vc diz pegar
 tabelas usando o
 parametro tables ? ou usar os schemas? vc naum
 aconselha fazer um
 full=y?
 mas nao ficaria inviavel caso vc tenha centenas e
 centenas de tabelas ?

 *depois vc gera um script .sql desses índices e
 constraints (opção INDEXFILE do imp), e altera esse
 script para criar
 os índices com NOLOGGING (e PARALLEL se a máquina
 suporta) e as
 constraints com ENABLE NOVALIDATE.*

 Vc tem alguma dica para editar/alterar mais
 rapidamente esses arquivos ?
 outra coisa, soh para confirmar, qndo faco o exp com o
 indexfile, coloco
 rows=n constraints=y indexes=y, mas ele coloca os
 scripts de criacao da
 tabelas la ? esta correto

 Valew.

 On 3/31/06, Jemerson Dutra [EMAIL PROTECTED] wrote:
 
  Realmente Incrivel, fiz um teste usando os
 parametros que o chiapa
  deu uns toques e meu export que durava horas veio
 para casa dos 23
  minutos. Porem creio que meu hardware nao a altura
 do de vcs.
  Jemerson
  Valeu chiappa.
 
  --- Em oracle_br@yahoogrupos.com.br, DBA - ORACLE
 [EMAIL PROTECTED]
  escreveu
  
   Depois do help do Chiappa, fiz o export da base de
 produção e durou
  40
   minutos, indexes=n direct=y compress=n grants=y
 constranits=n
  
   Detalhe...o servidor de produção tem 25GB gerando
 um dump de 15GB
  
   Marcio
  
  
  
   Em 29/03/06, jlchiappa [EMAIL PROTECTED] escreveu:
 
   
Colega, com certeza 10 Gb num servidor bom de
 Produção (que além
  de
RAM, esteja com discos rápidos, controladora de
 fibra), que
(obviamente!) na hora do export esteja com uma
 carga leve, ou
  mesmo
sem carga, num banco decentemente configurado,
 sendo export local
  E
usando as opções adequadas de performance, não é
 NEM DE LONGE uma
carga extrema assim pra levar horas e horas, um
 exemplo na minha
máquina de produção (hp-ux 64 bits, 24
 processadores, 32 Gb de
  RAM,
arrays de discos EMC Symmetrix DMX Series
 alocado/gerenciado pelo
PowerPath, com filesystems cooked ) :
   
[EMAIL PROTECTED]:SQLselect num_rows, avg_row_len
 from dba_tables where
table_name='TMP_MIGEP_101891';
   
 NUM_ROWSAVG_ROW_LEN
-- --
 59541295248
   
== essa tabela é um pouco larga, como se vê
 pelo AVG_ROW_LEN, mas
não está com muito white-space, pois :
   
[EMAIL PROTECTED]:SQLselect 59541295*248 from dual;
   
 59541295*248
--
  14766241160
   
== pela média se esperava coisa de 14 Gb, real
 alocado eu tenho
coisa de 16 :
   
[EMAIL PROTECTED]:SQLselect sum(bytes) from
 dba_extents where
segment_name='TMP_MIGEP_101891';
   
 SUM(BYTES)

 16.735.272.960
   
== ou seja, é até mais do que os seus 10 Gb, ok
 ? Vamos fazer o
export (neste momento a máquina está em uso, mas
 com uma carga
relativamente leve, alguns usuários rodando
 reports diários, nada
excepcional) :
   
usr_adm:PRD:/trafico/usr_admexp chiappa/x
 buffer=10485760
file=TMP_MIGEP_101891.dmp compress=n grants=n
 indexes=n direct=y
log=TMP_MIGEP_101891.exp
 tables=usr.TMP_MIGEP_101891
recordlength=65535 statistics=none constraints=n
 feedback=10
   
Export: Release 9.2.0.5.0 - Production on Qua
 Mar 29 10:02:37 2006
   
Copyright (c) 1982, 2002, Oracle Corporation.
 All rights
  reserved.
   
   
Conectado a: Oracle9i Enterprise Edition Release
 9.2.0.5.0 - 64bit
Production
With the Partitioning option
JServer Release 9.2.0.5.0 - Production
Exportação executada no conjunto de caracteres
 de WE8ISO8859P1  e
  no
conjunto de caracteres de AL16UTF16 NCHAR
OBS: concessões em
 tabelas/views/seqüências/funções não serão
exportadas
OBS: índices em tabelas não serão exportados

Re: [oracle_br] Re: IMPORT/EXPORT 8I/9I - WRAPED PROCEDURES - END COMMUNICATION

2006-04-02 Por tôpico Marcelo Cauduro
Vc diz uma sessao de imp criando soh as procedures mas para isso eu
teria de fazer um exp full=y com rows=n para pegar as procedures, e depois
um imp desse dump ?

Digo isso porque olhando no documento de referencia dos utilitarios da
oracle, vi que as triggers tem um parametros para exporta-las sozinhas , mas
para procedure naum vi...

Valeu.

On 4/2/06, jlchiappa [EMAIL PROTECTED] wrote:

  Eu desconheço incompatibilidade per se entre procedures feitas (seja
 com código wrappado ou não) em 9i serem re-criadas em 8i, no máximo o
 que talvez poderia estar havendo é a procedure 9i estar usando algum
 recurso especial do 9i não reconhecido no 8i, e o import 8i por bug ao
 invés de acusar logo erro fica tentando criar e se perde, mas isso é
 uma possibilidade remota. O que eu acho mais provável é , em o import
 demorando tantas e tantas horas assim, vc esteja é tendo a sessão dele
 na rede sendo encerrada por firewall ou filtro, ou mesmo por configs
 de seu usuário na rede/servidor, então a sugestão é : USE os
 procedimentos citados pra acelerar, na hora de importar tenha vários
 .dmps sendo importados em paralelo, depois crie os índices/constraints
 rapidamente com as opções de performance citadas, e só *** depois ***
 dos dados ok aí sim vc tenha uma sessão de imp criando as procedures ,
 pois aí terá menos coisas pro imp fazer, deve demorar menos, menos
 chance de vc ter a conexão de rede  derrubada, que é o que deve estar
 havendo, imagino eu.

 []s

 Chiappa

 --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
 escreveu

 
  Tinha uma base no 9i (linux) e queria exportar ela para o 8i (windows) ,
  então conectei
  no 9i pelo 8i e fiz um export full. Deu certo !!
  Sem warnings !!!
 
  Dai criei as tablespaces (deu um grep [existe tb] pelo windows)...
  tudo ok...
 
  comecei o import depois de horas (naum segui os conselhos para
  acelerar)..
  deu um erro...
  falou de end of comunication do arquivo.
  Parou .
 
  Alguem tem ideia do pq ??
 
  Notem, deu erro na parte de import das procedures, e quando parou estava
  importando um
  wraped procedure. Será que é isso ? Uma incompatibilidade ^?
 
  O que posso fazer ?
 
  Foi essa a minha maneira de transferir os dados a melhor ? (sem contar o
  tempo...
  afinal poderia ter usado indexfile... :-) )
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 






 --
 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
 __
 O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha
 o link do mesmo para evitar trafego(pedidos) desnecessário.


  *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE

 http://br.ard.yahoo.com/SIG=12fidb73j/M=403524.8266983.9075311.1588051/D=brclubs/S=2137114689:HM/Y=BR/EXP=1144007584/A=3154525/R=0/SIG=12igfl26t/*http://www.momentumquiz.com.br/index.php?md5ref=372BBEE98E9544bd8B2F9E87847EEEBE
 --
 *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][EMAIL PROTECTED]

- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo! http://br.yahoo.com/info/utos.html.




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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
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

 




Re: [oracle_br] Re: IMPORT/EXPORT 8I/9I - WRAPED PROCEDURES - END COMMUNICATION

2006-04-02 Por tôpico Marcelo Cauduro
Segui as recomendaçoes, foi bem mais rapido...
mas deu o erro de novo
IMP-3: ORACLE error 3113 encountered
ORA-03113: end-of-file on communication channel

isso aconteceu em menos de uma hora...

outro erro que aconteceu foi de nao conseguir alocar segmentos na
tabelespace de rollback... mas para esse acredito que seja necessario
somente criar mais segmentos de rolllback, certo ?

agora nao sei se esse problema de segmento possa ter gerado o de cima, mas
acho dificil , tb naum sei se uma hora eh pouco para nao perder a sessao...
nao imagino o que possa ser...

On 4/2/06, jlchiappa [EMAIL PROTECTED] wrote:

  As procedures não tem, realmente, params para ser exportadas apenas
 elas, mas elas SEMPRE vêm ou num exp full=y ou num exp com
 owner=(listadeusuarios)- logicamente, vc vai especificar no export
 rows=n indexes=n contraints=n triggers=n grants=n statistics=none, o
 que sobra pra ter no .dmp será mesmo só o DDL das tabelas (que como eu
 disse em outra msg sempre vêm), os objetos programados(
 procedures/functions/packages), e itens que pertencem aos usuários mas
 não contém dados, como views, sequences, sinônimos
 Na hora de importar só não esqueça , claro, do IGNORE=y para que os
 objetos já existentes no banco mas que ainda assim constam do .dmp
 (como as tabelas) tenham a msg de erro correspondente ignorada, e o
 imp continue depois disso.


 []s

 Chiappa

 --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
 escreveu
 
  Vc diz uma sessao de imp criando soh as procedures mas para isso eu
  teria de fazer um exp full=y com rows=n para pegar as procedures, e
 depois
  um imp desse dump ?
 
  Digo isso porque olhando no documento de referencia dos utilitarios da
  oracle, vi que as triggers tem um parametros para exporta-las
 sozinhas , mas
  para procedure naum vi...
 
  Valeu.
 
  On 4/2/06, jlchiappa [EMAIL PROTECTED] wrote:
  
Eu desconheço incompatibilidade per se entre procedures feitas (seja
   com código wrappado ou não) em 9i serem re-criadas em 8i, no máximo o
   que talvez poderia estar havendo é a procedure 9i estar usando algum
   recurso especial do 9i não reconhecido no 8i, e o import 8i por bug ao
   invés de acusar logo erro fica tentando criar e se perde, mas isso é
   uma possibilidade remota. O que eu acho mais provável é , em o import
   demorando tantas e tantas horas assim, vc esteja é tendo a sessão dele
   na rede sendo encerrada por firewall ou filtro, ou mesmo por configs
   de seu usuário na rede/servidor, então a sugestão é : USE os
   procedimentos citados pra acelerar, na hora de importar tenha vários
   .dmps sendo importados em paralelo, depois crie os índices/constraints
   rapidamente com as opções de performance citadas, e só *** depois ***
   dos dados ok aí sim vc tenha uma sessão de imp criando as procedures ,
   pois aí terá menos coisas pro imp fazer, deve demorar menos, menos
   chance de vc ter a conexão de rede  derrubada, que é o que deve estar
   havendo, imagino eu.
  
   []s
  
   Chiappa
  
   --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
   escreveu
  
   
Tinha uma base no 9i (linux) e queria exportar ela para o 8i
 (windows) ,
então conectei
no 9i pelo 8i e fiz um export full. Deu certo !!
Sem warnings !!!
   
Dai criei as tablespaces (deu um grep [existe tb] pelo windows)...
tudo ok...
   
comecei o import depois de horas (naum segui os conselhos para
acelerar)..
deu um erro...
falou de end of comunication do arquivo.
Parou .
   
Alguem tem ideia do pq ??
   
Notem, deu erro na parte de import das procedures, e quando
 parou estava
importando um
wraped procedure. Será que é isso ? Uma incompatibilidade ^?
   
O que posso fazer ?
   
Foi essa a minha maneira de transferir os dados a melhor ? (sem
 contar o
tempo...
afinal poderia ter usado indexfile... :-) )
   
   
[As partes desta mensagem que não continham texto foram removidas]
   
  
  
  
  
  
  
  

 --
   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
   __
   O grupo Oracle_br não aceita anexos. Quando oferecer algum
 arquivo, tenha
   o link do mesmo para evitar trafego(pedidos) desnecessário.
  
  
*Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
  
  
 
 http://br.ard.yahoo.com/SIG=12fidb73j/M=403524.8266983.9075311.1588051/D=brclubs/S

Re: [oracle_br] Re: Copiar bancos

2006-04-01 Por tôpico Marcelo Cauduro
Essas dicas realmente foram incriveis !!!

mas ficaram algumas duvidas...

o chiappa falou de

***vc primeiro faz ** vários
** exps em paralelo (quantas a tua máquina suportar sem arrear), só
de dados, cada um pegando uma porção das tabelas*
**
como pegart essa uma porcao de tabelas ? vc diz pegar tabelas usando o
parametro tables ? ou usar os schemas? vc naum aconselha fazer um
full=y?
mas nao ficaria inviavel caso vc tenha centenas e centenas de tabelas ?

*depois vc gera um script .sql desses índices e
constraints (opção INDEXFILE do imp), e altera esse script para criar
os índices com NOLOGGING (e PARALLEL se a máquina suporta) e as
constraints com ENABLE NOVALIDATE.*

Vc tem alguma dica para editar/alterar mais rapidamente esses arquivos ?
outra coisa, soh para confirmar, qndo faco o exp com o indexfile, coloco
rows=n constraints=y indexes=y, mas ele coloca os scripts de criacao da
tabelas la ? esta correto

Valew.

On 3/31/06, Jemerson Dutra [EMAIL PROTECTED] wrote:

 Realmente Incrivel, fiz um teste usando os parametros que o chiapa
 deu uns toques e meu export que durava horas veio para casa dos 23
 minutos. Porem creio que meu hardware nao a altura do de vcs.
 Jemerson
 Valeu chiappa.

 --- Em oracle_br@yahoogrupos.com.br, DBA - ORACLE [EMAIL PROTECTED]
 escreveu
 
  Depois do help do Chiappa, fiz o export da base de produção e durou
 40
  minutos, indexes=n direct=y compress=n grants=y constranits=n
 
  Detalhe...o servidor de produção tem 25GB gerando um dump de 15GB
 
  Marcio
 
 
 
  Em 29/03/06, jlchiappa [EMAIL PROTECTED] escreveu:

  
   Colega, com certeza 10 Gb num servidor bom de Produção (que além
 de
   RAM, esteja com discos rápidos, controladora de fibra), que
   (obviamente!) na hora do export esteja com uma carga leve, ou
 mesmo
   sem carga, num banco decentemente configurado, sendo export local
 E
   usando as opções adequadas de performance, não é NEM DE LONGE uma
   carga extrema assim pra levar horas e horas, um exemplo na minha
   máquina de produção (hp-ux 64 bits, 24 processadores, 32 Gb de
 RAM,
   arrays de discos EMC Symmetrix DMX Series alocado/gerenciado pelo
   PowerPath, com filesystems cooked ) :
  
   [EMAIL PROTECTED]:SQLselect num_rows, avg_row_len from dba_tables where
   table_name='TMP_MIGEP_101891';
  
NUM_ROWSAVG_ROW_LEN
   -- --
59541295248
  
   == essa tabela é um pouco larga, como se vê pelo AVG_ROW_LEN, mas
   não está com muito white-space, pois :
  
   [EMAIL PROTECTED]:SQLselect 59541295*248 from dual;
  
59541295*248
   --
 14766241160
  
   == pela média se esperava coisa de 14 Gb, real alocado eu tenho
   coisa de 16 :
  
   [EMAIL PROTECTED]:SQLselect sum(bytes) from dba_extents where
   segment_name='TMP_MIGEP_101891';
  
SUM(BYTES)
   
16.735.272.960
  
   == ou seja, é até mais do que os seus 10 Gb, ok ? Vamos fazer o
   export (neste momento a máquina está em uso, mas com uma carga
   relativamente leve, alguns usuários rodando reports diários, nada
   excepcional) :
  
   usr_adm:PRD:/trafico/usr_admexp chiappa/x buffer=10485760
   file=TMP_MIGEP_101891.dmp compress=n grants=n indexes=n direct=y
   log=TMP_MIGEP_101891.exp tables=usr.TMP_MIGEP_101891
   recordlength=65535 statistics=none constraints=n feedback=10
  
   Export: Release 9.2.0.5.0 - Production on Qua Mar 29 10:02:37 2006
  
   Copyright (c) 1982, 2002, Oracle Corporation.  All rights
 reserved.
  
  
   Conectado a: Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit
   Production
   With the Partitioning option
   JServer Release 9.2.0.5.0 - Production
   Exportação executada no conjunto de caracteres de WE8ISO8859P1  e
 no
   conjunto de caracteres de AL16UTF16 NCHAR
   OBS: concessões em tabelas/views/seqüências/funções não serão
   exportadas
   OBS: índices em tabelas não serão exportados
   OBS: restrições em tabelas não serão exportadas
  
   Sobre exportar tabelas especificadas ... via Caminho Direto ...
   O usuário atual foi alterado para usr
   . . exportando tabela   TMP_MIGEP_101891
 
  
 ..
   .
   .
  
   == cada pontinho acima é 100 mil linhas (é o param feedback), vc
 não
   vê mas aqui na minha tela cada um deles aparece a cada
   segundo/segundo e meio, e essa performance de ler em direct-mode
   coisa de 100 mil linhas por segundo é a normal, afaik, prum
 servidor
   de Produção. Vamos ver quando termina :
  
   -rw-r--r--   1 usr_admusr16648983040 Mar 29 10:40
   TMP_MIGEP_101891.dmp
  
   ou seja, levei coisa de pouco mais de meia hora : tudo bem, de
   repente vc tem um hardware um pouco inferior, que leve uma hora ,
   porém mais que isso é ** inaceitável ** numa máquina de Produção
   full, se vc está tendo algo pior que isso num caso semelhante ao
   acima  vc TEM 

Re: [oracle_br] RES: Import Full /Export Full - Duplicar instancia

2006-03-31 Por tôpico Marcelo Cauduro
Rodei o metadata e ele trouxe CLOB...

Pq 

On 3/30/06, Marcelo Cauduro [EMAIL PROTECTED] wrote:

 Obrigado !!! Gostei da alternativa, muito boa 

 Se o meu for 8i eu nao vou ter essa peckage dbms_metadata, entao teria de
 fazer na mão , o que também não é dificil, VALEU!

 Depois de criar as tablespaces é só fazer o imp full com o system/manager,
 confere ?


 On 3/30/06, Ederson [EMAIL PROTECTED] wrote:
 
   Vc pode fazer assim:
 
  Método 1)
  Exp . ROWS=N
  Desta forma o arquivo DMP gerado pode ser editado e vc copia a parte do
  sql
  que cria as tablespaces, e daí basta alterar para gravar onde vc quer.
 
  Método 2) (para banco 9i acima)
  select lower(dbms_metadata.get_ddl('TABLESPACE',u.TABLESPACE_NAME))
   from dba_tablespaces u;
 
  Eu prefiro mais o segundo ...
 
 
  Ederson Elias de Oliveira
  DBA Oracle
  Setransp - Goiânia-GO
  ---
 
  -Mensagem original-
  De: oracle_br@yahoogrupos.com.br [mailto: [EMAIL PROTECTED]
  Em
  nome de Marcelo Cauduro
  Enviada em: quinta-feira, 30 de março de 2006 18:02
 
  Para: oracle_br@yahoogrupos.com.br
  Assunto: Re: [oracle_br] RES: Import Full /Export Full - Duplicar
  instancia
 
 
  Se eu tivesse por exemplo, 200 tablespace, não seria inviavel esse
  processo
  ?
 
  Tem algo mais agil por script , pelo imp ?
 
  Tem alguma ferramenta da oracle ?
 
  On 3/30/06, Marcelo Cauduro [EMAIL PROTECTED] wrote:
  
   Essa é a unica maneira ?
  
  
   On 3/30/06, Ederson [EMAIL PROTECTED] wrote:
   
 Faz assim:
   
- na máquina nova, já cria as tablespaces com os mesmos nomes
  do banco original, mas nos locais onde vc pode criar
   
- no IMP.exe, acrescente IGNORE=Y
   
   
   
Ederson Elias de Oliveira
DBA Oracle
Setransp - Goiânia-GO
---
 
 
 
  --
  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
  __
  O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo,
  tenha o link do mesmo para evitar trafego(pedidos) desnecessário.
 
 
   *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
 
  http://br.ard.yahoo.com/SIG=12f6dja3a/M=365837.7000707.7924794.2369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1143760527/A=3365371/R=2/id=noscript/SIG=110csbogi/*http://www.yahoo.com.br/cinema
 
  --
  *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]
 [EMAIL PROTECTED]
 
 - O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
 Serviço do Yahoo! http://br.yahoo.com/info/utos.html.
 
 



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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
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

 




Re: [oracle_br] Exp Imp utilizando o Data Pump

2006-03-31 Por tôpico Marcelo Cauduro
Não ira dar problema nos datafiles ? eles não estão com o diretorio da outra
maquina ?

On 3/31/06, Reginaldo F. Silva [EMAIL PROTECTED] wrote:



 Outra maneira sem usar Exp/Imp

 set oracle_sid=SID1
 sqlplus / as sysdba
 alter database backup controlfile to trace as 'caminho\ControlFile.out'
 reuse;
 shutdown immediate;
 exit;

 faça uma cópia fria do banco renomeando a pasta para o caminho desejado
 (ex: F:\Oradata\Base1 - G:\Oradata\Base2)

 set oracle_sid=SID1
 sqlplus / as sysdba
 startup
 exit;

 edite o arquivo caminho\ControlFile.out e ajuste o novo nome base e
 caminho.
 Ex:
 CREATE CONTROLFILE REUSE DATABASE OLD_NAME NORESETLOGS NOARCHIVELOG
   para
 CREATE CONTROLFILE REUSE SET DATABASE NEW_NAME RESETLOGS NOARCHIVELOG

 Crie o arquivo initSID2.ora para a nova base

 Crie a instancia (oradim -new ...)

 set oracle_sid=SID2
 sqlplus / as sysdba
 startup nomount pfile=caminho\initSID2.ora
 @caminho\ControlFile.out


 Este método pode ser usado inclusive para copiar para outros servidores
 (manter exatamente a mesma versão do oracle)


 Atenciosamente,

 Reginaldo de Fáveri da Silva
 Administrador de Banco de Dados
 Oracle 8i Certified
 Softplan Plan. Sist. Ltda.
 Fone.:(0xx48) 3027-8000
 Sistema da Qualidade Certificado
 ISO9001-BVQI/INMETRO

 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
 nome de wpedroti
 Enviada em: quinta-feira, 30 de março de 2006 17:13
 Para: oracle_br@yahoogrupos.com.br
 Assunto: [oracle_br] Exp  Imp utilizando o Data Pump


 olá Pessoal,

 Sou novo no grupo e já estou com problemas no import, tentei detalhar
 o máximo possível do erro, caso alguém tenha uma luz, desde já
 agradeço.

 Obrigado

 Oracle 10g em um servidor RedHat 4.0. Tenho o seguinte script para
 fazer o export:
 su - oracle -c /oracle/product/10.2.0/db_1/bin/expdp luk/[EMAIL PROTECTED]
 schemas=DOV directory=DOV DUMPFILE=$nomearq_dov LOGFILE=expdp_dov.log

 O log da exportação:
 . . exported LUK.SCSDO0A0  8.398 KB  40 rows
 Master table LUK.SYS_EXPORT_SCHEMA_01 successfully loaded/unloaded
 **
 
 Dump file set for LUK.SYS_EXPORT_SCHEMA_01 is:
   /bkp/luk/dov2006_Mar_24.dmp
 Job LUK.SYS_EXPORT_SCHEMA_01 successfully completed at 02:02:55

 A importação é feita em uma máquina com sistema operacional WXP
 Script da importação:
 impdp luk/[EMAIL PROTECTED] schemas=LUK directory=LUK
 dumpfile=dov2006_Mar_24.dmp logfile=impdp_dov.log

 O log da importação
 Conectado a: Oracle Database 10g Enterprise Edition Release
 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining
 options Tabela-mestre LUK.SYS_IMPORT_SCHEMA_01
 carregada/descarregada com sucesso
 Iniciando LUK.SYS_IMPORT_SCHEMA_01:  luk/[EMAIL PROTECTED]
 schemas=LUK directory=LUK dumpfile=dov2006_Mar_24.dmp
 logfile=impdp_dov.log Processando o tipo de objeto SCHEMA_EXPORT/USER
 ORA-31684: O tipo de objeto USER:LUK já existe
 ORA-31684: O tipo de objeto SEQUENCE:LUK.TOTALCL_DFSEQ já existe
 Processando o tipo de objeto SCHEMA_EXPORT/TABLE/TABLE
 ORA-39151: A tabela LUK.MCUSR0A0 existe. Todos os metadados e
 dados dependentes serão ignorados em decorrência de
 table_exists_action ignorado Processando o tipo de objeto
 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
 O job LUK.SYS_IMPORT_SCHEMA_01 foi concluído com 655 erro(s) em
 13:13:40












 
 --
 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
 __
 O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha
 o
 link do mesmo para evitar trafego(pedidos) desnecessário.
 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
 __
 O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha
 o link do mesmo para evitar trafego(pedidos) 

[oracle_br] Import Full /Export Full - Duplicar instancia

2006-03-30 Por tôpico Marcelo Cauduro
Pessoal,

Tenho algumas perguntas :

1- Quais são as maneiras para duplicar uma base de dados na mesma maquina ?
E duplica-la numa outra (mas com diretorio diferentes de objetos) ?

2- Fiz um export full numa maquina, assim ele copiou tudo (eu espero) até as
definicoes de tablespace, mas
eu quero fazer agora import full numa outra maquina, contudo ele quer criar
as tablespaces em diretorios que não
existem nessa maquina, só na outra , o que fazer ?

Por favor, eu estou fazendo os procedimentos acima tanto no 10g como no 8i,
e não estou usando
expdp,impdp no 10g mas sim o exp,imp.

Valeu.


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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
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

 




Re: [oracle_br] RES: Import Full /Export Full - Duplicar instancia

2006-03-30 Por tôpico Marcelo Cauduro
Essa é a unica maneira ?

On 3/30/06, Ederson [EMAIL PROTECTED] wrote:

  Faz assim:

 - na máquina nova, já cria as tablespaces com os mesmos nomes
   do banco original, mas nos locais onde vc pode criar

 - no IMP.exe, acrescente IGNORE=Y



 Ederson Elias de Oliveira
 DBA Oracle
 Setransp - Goiânia-GO
 ---

 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
 nome de Marcelo Cauduro
 Enviada em: quinta-feira, 30 de março de 2006 17:01
 Para: oracle_br@yahoogrupos.com.br
 Assunto: [oracle_br] Import Full /Export Full - Duplicar instancia


 Pessoal,

 Tenho algumas perguntas :

 1- Quais são as maneiras para duplicar uma base de dados na mesma maquina
 ?
 E duplica-la numa outra (mas com diretorio diferentes de objetos) ?

 2- Fiz um export full numa maquina, assim ele copiou tudo (eu espero) até
 as
 definicoes de tablespace, mas
 eu quero fazer agora import full numa outra maquina, contudo ele quer
 criar
 as tablespaces em diretorios que não
 existem nessa maquina, só na outra , o que fazer ?

 Por favor, eu estou fazendo os procedimentos acima tanto no 10g como no
 8i,
 e não estou usando
 expdp,impdp no 10g mas sim o exp,imp.

 Valeu.




 --
 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
 __
 O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha
 o link do mesmo para evitar trafego(pedidos) desnecessário.


 --
 *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][EMAIL PROTECTED]

- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo! http://br.yahoo.com/info/utos.html.




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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
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

 





Re: [oracle_br] RES: Import Full /Export Full - Duplicar instancia

2006-03-30 Por tôpico Marcelo Cauduro
Se eu tivesse por exemplo, 200 tablespace, não seria inviavel esse processo
?

Tem algo mais agil por script , pelo imp ?

Tem alguma ferramenta da oracle ?

On 3/30/06, Marcelo Cauduro [EMAIL PROTECTED] wrote:

 Essa é a unica maneira ?


 On 3/30/06, Ederson [EMAIL PROTECTED] wrote:
 
   Faz assim:
 
  - na máquina nova, já cria as tablespaces com os mesmos nomes
do banco original, mas nos locais onde vc pode criar
 
  - no IMP.exe, acrescente IGNORE=Y
 
 
 
  Ederson Elias de Oliveira
  DBA Oracle
  Setransp - Goiânia-GO
  ---
 
  -Mensagem original-
  De: oracle_br@yahoogrupos.com.br [mailto: [EMAIL PROTECTED]
  Em
  nome de Marcelo Cauduro
  Enviada em: quinta-feira, 30 de março de 2006 17:01
  Para: oracle_br@yahoogrupos.com.br
  Assunto: [oracle_br] Import Full /Export Full - Duplicar instancia
 
 
  Pessoal,
 
  Tenho algumas perguntas :
 
  1- Quais são as maneiras para duplicar uma base de dados na mesma
  maquina ?
  E duplica-la numa outra (mas com diretorio diferentes de objetos) ?
 
  2- Fiz um export full numa maquina, assim ele copiou tudo (eu espero)
  até as
  definicoes de tablespace, mas
  eu quero fazer agora import full numa outra maquina, contudo ele quer
  criar
  as tablespaces em diretorios que não
  existem nessa maquina, só na outra , o que fazer ?
 
  Por favor, eu estou fazendo os procedimentos acima tanto no 10g como no
  8i,
  e não estou usando
  expdp,impdp no 10g mas sim o exp,imp.
 
  Valeu.
 
 
 
 
  --
  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
  __
  O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo,
  tenha o link do mesmo para evitar trafego(pedidos) desnecessário.
 
 
  --
  *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]
 [EMAIL PROTECTED]
 
 - O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
 Serviço do Yahoo! http://br.yahoo.com/info/utos.html.
 
 



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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
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

 




Re: [oracle_br] RES: Import Full /Export Full - Duplicar instancia

2006-03-30 Por tôpico Marcelo Cauduro
Obrigado !!! Gostei da alternativa, muito boa 

Se o meu for 8i eu nao vou ter essa peckage dbms_metadata, entao teria de
fazer na mão , o que também não é dificil, VALEU!

Depois de criar as tablespaces é só fazer o imp full com o system/manager,
confere ?

On 3/30/06, Ederson [EMAIL PROTECTED] wrote:

  Vc pode fazer assim:

 Método 1)
 Exp . ROWS=N
 Desta forma o arquivo DMP gerado pode ser editado e vc copia a parte do
 sql
 que cria as tablespaces, e daí basta alterar para gravar onde vc quer.

 Método 2) (para banco 9i acima)
 select lower(dbms_metadata.get_ddl('TABLESPACE',u.TABLESPACE_NAME))
  from dba_tablespaces u;

 Eu prefiro mais o segundo ...


 Ederson Elias de Oliveira
 DBA Oracle
 Setransp - Goiânia-GO
 ---

 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
 nome de Marcelo Cauduro
 Enviada em: quinta-feira, 30 de março de 2006 18:02

 Para: oracle_br@yahoogrupos.com.br
 Assunto: Re: [oracle_br] RES: Import Full /Export Full - Duplicar
 instancia


 Se eu tivesse por exemplo, 200 tablespace, não seria inviavel esse
 processo
 ?

 Tem algo mais agil por script , pelo imp ?

 Tem alguma ferramenta da oracle ?

 On 3/30/06, Marcelo Cauduro [EMAIL PROTECTED] wrote:
 
  Essa é a unica maneira ?
 
 
  On 3/30/06, Ederson [EMAIL PROTECTED] wrote:
  
Faz assim:
  
   - na máquina nova, já cria as tablespaces com os mesmos nomes
 do banco original, mas nos locais onde vc pode criar
  
   - no IMP.exe, acrescente IGNORE=Y
  
  
  
   Ederson Elias de Oliveira
   DBA Oracle
   Setransp - Goiânia-GO
   ---



 --
 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
 __
 O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha
 o link do mesmo para evitar trafego(pedidos) desnecessário.


  *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
 http://br.ard.yahoo.com/SIG=12f6dja3a/M=365837.7000707.7924794.2369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1143760527/A=3365371/R=2/id=noscript/SIG=110csbogi/*http://www.yahoo.com.br/cinema

 --
 *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][EMAIL PROTECTED]

- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo! http://br.yahoo.com/info/utos.html.




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



--
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 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
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] Simular saida de blocos CACHE

2006-02-23 Por tôpico Marcelo Cauduro
Pessoal, estou fazendo testes com o DBMS_PROFILER e quero ter certeza que
nenhum bloco de de dados ou procedimentos estejam em minha cache, basta eu
fazer um :

alter tablespace NOME offline
alter tablespace NOME online

mas,
 eu gostaria de saber se existe alguma outra maneira de forcar a limpeza
do cache (memoria para disco) ,
e qual as consequencias dessa e da outra maneira.

Muito Obrigado.


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



--
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

 




Re: [oracle_br] Re: Simular saida de blocos CACHE

2006-02-23 Por tôpico Marcelo Cauduro
Era o que eu precisava, Obrigado Chiapa  boa explanação !!!

On 2/23/06, jlchiappa [EMAIL PROTECTED] wrote:

  Na verdade essa é uma birra antiga minha com a dona Oracle, até ao
 menos nas versões que uso mais frequentemente (ie, 9ir2) ** não ** há
 um comando/package/utilitário/o que for pra vc manipular blocos no
 cache de blocos (seja removendo blocos do cache, seja mudando a ordem
 de dados blocos no cache, ou coisas do tipo), a respostinha-padrão
 dela é que isso seria difícil de fazer, mas não acho isso, pois até
 poderia se exigir que pra isso o banco estivesse aquietado, ou que
 não houvesse transações, mas enfim, é isso.
 Voltando à resposta : já que é assim, o que vc faz pra remover
 blocos do cache é ter uma situação que o banco seja forçado a fazer
 um checkpoint e os remover da RAM : pode ser tablespace sendo
 offlined, pode ser outros blocos diferentes entrando no cache, pode
 ser banco sendo shutado... Normalmente o que eu uso mesmo é a
 tablespace offline.  Consequência da tablespace offline é que,
 enquanto ela estiver offline, vc não poderá mais acessar nada do que
 estiver nela, não poderá gravar nem ler, PODE interferir em
 jobs/MVs/etc que precisem dos objetos nessa tablespace,  mas é um
 comando normal e acessível, não vai quebrar nada no seu banco.

 []s

   Chiappa

 --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro
 [EMAIL PROTECTED] escreveu
 
  Pessoal, estou fazendo testes com o DBMS_PROFILER e quero ter
 certeza que
  nenhum bloco de de dados ou procedimentos estejam em minha cache,
 basta eu
  fazer um :
 
  alter tablespace NOME offline
  alter tablespace NOME online
 
  mas,
   eu gostaria de saber se existe alguma outra maneira de forcar a
 limpeza
  do cache (memoria para disco) ,
  e qual as consequencias dessa e da outra maneira.
 
  Muito Obrigado.
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 






 --
 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




  *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
 http://br.ard.yahoo.com/SIG=12f12ja3b/M=396547.7942355.8848059.2369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1140708356/A=3310604/R=2/id=noscript/SIG=1540fueht/*http://lt.dell.com/lt/lt.aspx?CID=11377LID=314739DGC=BADGSeg=DHSDURL=http://www1.la.dell.com/content/products/category.aspx/desktops?c%3dbr%26l%3dpt%26s%3ddhs
 --
 *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][EMAIL PROTECTED]

- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo! http://br.yahoo.com/info/utos.html.




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



--
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] Expert Oracle Database Architecture: 9i and 10g Programming Techniques and Solutions

2006-02-23 Por tôpico Marcelo Cauduro
Alguem saber me informar se o livro Expert Oracle Database Architecture: 9i
and 10g Programming Techniques and Solutions do Thomas Kyte é uma
atualização do  Expert One on One do próprio Thomas Kyte,

Obrigado.


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



--
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] Expert Oracle Database Architecture

2006-02-23 Por tôpico Marcelo Cauduro
-- Forwarded message --
From: Marcelo Cauduro [EMAIL PROTECTED]
Date: Feb 23, 2006 4:25 PM
Subject: Expert Oracle Database Architecture: 9i and 10g Programming
Techniques and Solutions
To: oracle_br@yahoogrupos.com.br

Alguem saber me informar se o livro Expert Oracle Database Architecture: 9i
and 10g Programming Techniques and Solutions do Thomas Kyte é uma
atualização do  Expert One on One do próprio Thomas Kyte,

Obrigado.


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



--
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

 




Re: [oracle_br] FK's

2006-02-21 Por tôpico Marcelo Cauduro
Tire as virgulas e acrescente ADD's

ALTER TABLE TABLE_NAME
ADD
CONSTRAINT FK001 FOREIGN KEY
(
COD_AQUIS_ACE_ESTRUT_ORGN
) REFERENCES  ACE_ESTRUT_ORGN (
CODIGO
)
ADD CONSTRAINT FK002 FOREIGN KEY
(
COD_LOCAL_ACE_ESTRUT_ORGN
) REFERENCES  ACE_ESTRUT_ORGN (
CODIGO
)
ADD CONSTRAINT FK003 FOREIGN KEY
(
MATR_CO_RESP_DDV_VINCULO_SERVD
) REFERENCES  DDV_VINCULO_SERVIDOR (
MATRICULA
)
ADD CONSTRAINT FK004 FOREIGN KEY
(
MATR_RESP_DDV_VINCULO_SERVD
) REFERENCES  DDV_VINCULO_SERVIDOR (
MATRICULA
)
/

On 2/21/06, Daniel Mello [EMAIL PROTECTED] wrote:

  vc só pode criar uma de cada vez.

 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
 nome de Gilvan Alysson Sobrinho
 Enviada em: terça-feira, 21 de fevereiro de 2006 14:23
 Para: Oracle_br
 Assunto: [oracle_br] FK's


 Pessoal Boa tarde.
 Bom, estou criando algumas FKs da seguinte forma:
 Onde estou errando? Posso fazer dessa forma?

 ALTER TABLE TABLE_NAME ADD
 CONSTRAINT FK001 FOREIGN KEY
 (
 COD_AQUIS_ACE_ESTRUT_ORGN
 ) REFERENCES  ACE_ESTRUT_ORGN (
 CODIGO
 ),
 CONSTRAINT FK002 FOREIGN KEY
 (
 COD_LOCAL_ACE_ESTRUT_ORGN
 ) REFERENCES  ACE_ESTRUT_ORGN (
 CODIGO
 ),
 CONSTRAINT FK003 FOREIGN KEY
 (
 MATR_CO_RESP_DDV_VINCULO_SERVD
 ) REFERENCES  DDV_VINCULO_SERVIDOR (
 MATRICULA
 ),
 CONSTRAINT FK004 FOREIGN KEY
 (
 MATR_RESP_DDV_VINCULO_SERVD
 ) REFERENCES  DDV_VINCULO_SERVIDOR (
 MATRICULA
 )
 /


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




 
 --
 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




  *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
 http://br.ard.yahoo.com/SIG=12fiqor8v/M=396547.7942355.8848059.2369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1140550483/A=3310604/R=2/id=noscript/SIG=1540fueht/*http://lt.dell.com/lt/lt.aspx?CID=11377LID=314739DGC=BADGSeg=DHSDURL=http://www1.la.dell.com/content/products/category.aspx/desktops?c%3dbr%26l%3dpt%26s%3ddhs
 --
 *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][EMAIL PROTECTED]

- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo! http://br.yahoo.com/info/utos.html.




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



--
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

 




Re: [oracle_br] Re: Oracle Concepts - Documento

2006-01-23 Por tôpico Marcelo Cauduro
essa high water mark me confundiu... ela é verificada em inserts e updates
?
Por que se sim, e se quando eu deleto eu libero linha mas ela fica no me
mesmo lugar... eu não iria reusar os blocos livres por meio do espaço
deixado com os deletes...

On 1/23/06, Marcelo Cauduro [EMAIL PROTECTED] wrote:

 Muito legal Chiapa, mas fica a dúvida,

 pelo que entendi...
 sempre qndo faço um delete ou mesmo um update para null value e os
 parametros pctused e pctfree estiverem ok, ou seja, tiver espaco livre maior
 que pctfree por exemplo,
 os extents do segmento que tinham as linhas que foi removida, ou até todo
 o segmento, dependendo do volume do delete/update, fica livre na hora...

 mas é ai que surge minha dúvida...

 lendo o concepts aprendi o conceito da high water mark ou marca d'agua,
 que seria o limite entre os blocos usados e não usados, ou seja, ela
 indica o ultimo bloco usado na tabela,
 mas quando se faz delete, pelo que entendi, essa marca d'gua não é
 restabelecida,

 - isso não afetaria a liberação dos extents ??

 - ou essa marca é usada apenas para quando o Oracle vai recuperar os
 dados, ou seja, ele le todos os blocos até a high water mark, não afetando
 os updates/deletes ?

 On 1/23/06, jlchiappa [EMAIL PROTECTED] wrote:
 
   --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
  escreveu
  
   Pessoal,
  
   Lendo o Oracle Concepts Part II, Chapter 2 and 3, fiquei com as
  seguintes
   dúvidas :
  
   Um segmento é só para um objeto certo ?
 
  Um segmento = um objeto ** lógico **, ou seja, um item que possui
  storage. Por exemplo, 1 tabela simples (heap table) = 1 objeto lógico
  = 1 segmento, mas para tabelas particionadas é CADA PARTIÇÃO = 1
  objeto lógico = 1 segmento, já que cada partição pode ser fisicamente
  diferente, alocada em locais e formas diferentes.
 
  
   Quando você apaga linhas de uma tabelas, os extents de um
  determinado
   segmento que continham essas linhas nâo sâo liberados para novas
  linhas ?
 
  São automaticamente liberados pra novas linhas, MAS desde que seja
  insert na mesma tabela.
 
  Há
   alguma excessao ?
 
  Não, em sendo tabelas e índices comuns.
 
  
   Pelo que li ele só são liberados quando uma nova insercao é feita,
 
  Incorreto : assim que as qtdades de deleções num bloco ultrapassam o
  especificado em PCTFREE, e sempre respeitando PCTUSED, o bloco vai
  pra lista de blocos livres, está LIBERADO pra reuso, e será
  TRANQUILAMENTE reusado quando for necessário, SEJA pra INSERTs, SEJA
  pra UPDATEs que ultrapassaram o espaço atual.
 
   que isto naum é feito na hora da exclusao ?
 
  É feito, mas o conceito aqui é : pra se obter a melhor performance
  possível em INSERTs/UPDATEs, assim que a tabela é criada, mesmo
  estando VAZIA, o banco já aloca um extent pra ela, e conforme vão
  ocorrendo novos INSERTs/UPDATEs que precisem de espaço, novos extents
  vão sendo alocados pra tabela. A chave aqui é, já que na maioria das
  vezes num banco de dados ativo a maioria das tabelas são dinâmicas
  (ie, hoje cresceu, daqui a pouco já tem deleção, logo depois tem
  novas inserções) pra poupar tempo e ganhar performance o banco
  considera TODO o espaço alocado pra um segmento como pertencente a
  ele, quando há deleções ou DMLs que livrem espaço, o espaço é livre
  MAS é espaço livre para uso DESSE segmento dono, é isso : assim, o
  banco se poupa o trabalho de ter que alocar novos extents. É por isso
  que tabelas de transação, que só crescem num job tipo fim de mês, e
  crescem aleatoriamente, muitas vezes até diminuindo em muito de
  tamanho, se desejado reaproveitamento desse espaço por OUTRAS
  tabelas, em princípio deveriam ser TRUNCADAS, aí sim o espaço livre
  delas fica disponível pra qquer outro segmento do banco, com exceção
  do extent inicial.
 
  []s
 
  Chiappa
 
 
 
 
 
  --
  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/
 
  --__
  Moderador e Fundador: Dorian Anderson Soutto [EMAIL PROTECTED]
  __
 
 
   *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
 
  http://br.rd.yahoo.com/SIG=12f3ff9ka/M=365837.7000707.7924794.2369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1138019872/A=2950750/R=2/id=noscript/SIG=10tift5qr/*http://br.movies.yahoo.com/
  --
  *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]
 [EMAIL PROTECTED]
 
 - O uso que

[oracle_br] Fwd: Procedimento Basicos DBA Junior

2006-01-21 Por tôpico Marcelo Cauduro
 Pessoal,
Estava pensando aqui quais são os procedimento básicos que um DBA Júnior tem
que saber,

Backup
Recovery
Export/Import
Dicionario de Dados

Melhor, tem que saber o Oracle Concepts e Backup e Recovery bem

Que mais ?


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



--
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/ 
--__
Moderador e Fundador: Dorian Anderson Soutto [EMAIL PROTECTED]
__ 
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] Long / LOB

2006-01-21 Por tôpico Marcelo Cauduro
O tipo de dados Long é acesso de forma sequencia quando o LOB é acessado de
formado randômica.
Conforme User Guide Reference da Oracle Pg 3-10.
O Long é armazenado sempre no final da linha, no mesmo datafile onde é
armazenado a tabela , é isso mesmo ?
Agora ja o LOb se o dado for maior que X bytes, ele guarda o ponteiro de
qual o datafile e posicao esta o Lob.
Mas não vejo como um pode ter acesso randomico e o outro sequencial.


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



--
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/ 
--__
Moderador e Fundador: Dorian Anderson Soutto [EMAIL PROTECTED]
__ 
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] Oracle Concepts - Documento

2006-01-21 Por tôpico Marcelo Cauduro
Pessoal,

Lendo o Oracle Concepts Part II, Chapter 2 and 3, fiquei com as seguintes
dúvidas :

Um segmento é só para um objeto certo ?

Quando você apaga linhas de uma tabelas, os extents de um determinado
segmento que continham essas linhas nâo sâo liberados para novas linhas ? Há
alguma excessao ?

Pelo que li ele só são liberados quando uma nova insercao é feita, mas por
que isto naum é feito na hora da exclusao ?


Obrigado.


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



--
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/ 
--__
Moderador e Fundador: Dorian Anderson Soutto [EMAIL PROTECTED]
__ 
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] Long / LOB

2006-01-20 Por tôpico Marcelo Cauduro
O tipo de dados Long é acesso de forma sequencia quando o LOB é acessado de
formado randômica.
Conforme User Guide Reference da Oracle Pg 3-10.
O Long é armazenado sempre no final da linha, no mesmo datafile onde é
armazenado a tabela , é isso mesmo ?
Agora ja o LOb se o dado for maior que X bytes, ele guarda o ponteiro de
qual o datafile e posicao esta o Lob.
Mas não vejo como um pode ter acesso randomico e o outro sequencial.


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



--
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] Procedimento Basicos DBA Junior

2006-01-20 Por tôpico Marcelo Cauduro
Pessoal,
Estava pensando aqui quais são os procedimento básicos que um DBA Júnior tem
que saber,

Backup
Recovery
Export/Import
Dicionario de Dados

Melhor, tem que saber o Oracle Concepts e Backup e Recovery bem

Que mais ?


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



--
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] Expert One on One: Oracle

2006-01-20 Por tôpico Marcelo Cauduro
Eu vi essa citação abaixo do Chiapa na lista,mas fiquei na duvida, a
traducao Dominando Oracle Programação Avançada não é muito boa porque tem
erros como traduzir tablespace para X qndo deveria ficar tablespace, ou
porque ele não é completo como o Expert One on One: Oracle

Valeu.

Expert One on One: Oracle, Thomas Kyte
Editora: Wrox Press Inc
ISBN: 1861004826, 1265 pags
Recomendado : por todas as fontes
agora está contido num CD-ROM no livro :
Expert Oracle Database Architecture: 9i and 10g Programming
Techniques and Solutions, Thomas Kyte
Editora Apress
ISBN: 1590595300


== tradução do livro Expert One on One : (não muito boa)
Dominando Oracle Programação Avançada, Thomas Kyte
Editora: Ciência Moderna
ISBN: 85-7393-186-8
Número de Páginas: 1088
site da Editora : http://www.lcm.com.br/


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



--
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] Nowait - Resource

2006-01-20 Por tôpico Marcelo Cauduro
Pessoal, estou tentando usar o NOWAIT para não permitir o update em uma
determinada linha que
estará em processamento.

Mas para testes fiz um procedimento que abre dois cursores que dão lock na
linha, mas ai é que ta o problema.,
ele permite abrir os dois cursores que dao lock na mesma linha, ...

mas pensei que o for update nào deixa-se...

não era para travar ? dar resource busy...

Meu oracle é 8i.

prompt -- Criacao das tabelas

create table teste_nowait ( a number);

insert into teste_nowait values (1)

prompt -- Ai vai o teste :

declare

  --prompt -- Cria primeiro cursor

  cursor i is select a from teste_nowait where a =1 for update OF a NOWAIT;

  --prompt -- Cria segundo cursor

  cursor i2 is select a from teste_nowait where a =1 for update OF a NOWAIT;

  --prompt -- Declara variaveis
  cursor1 i%rowtype;
  cursor2 i2%rowtype;

begin

  --prompt -- Abre os dois cursores

  open i;
  open i2;

  --prompt -- Obtem dados

  fetch i into cursor1;
  fetch i2 into cursor2;

  --prompt -- Realiza alteracoes

  if i2%found then
update teste_nowait
set a=cursor2.a+1
where current of i2;
  END IF;

  if i%found then
update teste_nowait
set a=cursor1.a+1
where current of i;
  END IF;

  rollback;

  close i;
  CLOSE I2;

end;


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



--
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] Procedimento Basicos DBA Junir

2006-01-19 Por tôpico Marcelo Cauduro
Pessoal,
Estava pensando aqui quais são os procedimento básicos que um DBA Júnior tem
que saber,

Backup
Recovery
Export/Import
Dicionario de Dados

Melhor, tem que saber o Oracle Concepts e Backup e Recovery bem

Que mais ?


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



--
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] Long / LOB

2006-01-19 Por tôpico Marcelo Cauduro
O tipo de dados Long é acesso de forma sequencia quando o LOB é acessado de
formado randômica.
Conforme User Guide Reference da Oracle Pg 3-10.
O Long é armazenado sempre no final da linha, no mesmo datafile onde é
armazenado a tabela , é isso mesmo ?
Agora ja o LOb se o dado for maior que X bytes, ele guarda o ponteiro de
qual o datafile e posicao esta o Lob.
Mas não vejo como um pode ter acesso randomico e o outro sequencial.


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



--
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

 





Re: [oracle_br] Como saber qual numero falta na pk ?

2006-01-18 Por tôpico Marcelo Cauduro
Marcio, essa query nao retorna

ORA-01473: cannot have subqueries in CONNECT BY clause ?



On 1/17/06, Marcio Portes [EMAIL PROTECTED] wrote:

  select *
from (
 with seq as (
  select level l
from dual connect by level = ( select max(x) from t )
 )
 select l, x, decode(x, null, l ) falta
from seq left outer join t on ( l = x )
   order by 1
  )
   where falta is not null
 /

 Seria um método. Segue exemplo:
 Balise a sequencia com uma view completa e faça um outer join com sua
 tabela. Com uma comparação simples, voce
 encontrará os gaps.


 SQL select * from t;

  X
 -
  1
  3
  4
  5
  6
 10
 13

 7 rows selected.

 SQL with seq as (
2  select level l
3from dual connect by level = ( select max(x) from t )
4  )
5  select l, x, decode(x, null, l ) falta
6from seq left outer join t on ( l = x )
7   order by 1
8  /

  L X FALTA
 - - -
  1 1
  2   2
  3 3
  4 4
  5 5
  6 6
  7   7
  8   8
  9   9
 1010
 11  11
 12  12
 1313

 13 rows selected.


 criscadba wrote:
  Boa tarde !
 
  Os desenvolvedores usam uma sequence para preencher a pk de uma
  tabela, só que alguém andou com a sequence em alguns momentos e a pk
  da tabela, que tem que ser sequencial, ficou com furos, exemplo :
 
  protocolo_inscricao
  1
  3
  4
  5
  6
  10
  13
 
  Há alguma função que me diga quais os números estão faltando porque
  foram pulados pelo avanço indevido da sequence ?

 --
 Marcio Portes
 http://mportes.blogspot.com


 --
 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


  *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
 http://br.rd.yahoo.com/SIG=12fib5nru/M=387526.7663462.8697482.1588051/D=brclubs/S=2137114689:HM/Y=BR/EXP=1137553830/A=3242383/R=2/id=noscript/SIG=16fepr8g1/*http://landingstrip.dell.com/landingstrip/ls.asp?CID=10164LID=293758DGC=BADGStor=DHSDGSite=YahooConum=BRDURL=http://www1.la.dell.com/content/products/category.aspx/notebooks?c%3Dbr%26l%3Dpt%26s%3Ddhs
 --
 *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][EMAIL PROTECTED]

- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo! http://br.yahoo.com/info/utos.html.




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



--
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

 





Re: [oracle_br] Re: DBMS_Profiler Test - Uso de indice - Resultado estranhos

2006-01-12 Por tôpico Marcelo Cauduro
Bem, o meu teste era mais para o teste do site:
http://asktom.oracle.com/pls/ask/f?p=4950:8:5311414143597218675::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:13912109165500
com FBI para pegar null values...
para comprovar a eficacia

Obrigado pela explanacao do assunto...

Deu para entender os LIO PIO... tks...

On 1/11/06, jlchiappa [EMAIL PROTECTED] wrote:

  Não entendi direito o que vc queria testar, mas pelo que vi vc tem uma
 proc com um monte de DMLs(INSERT no caso) e vc a rodou SEM e COM o
 índice criado, é isso ?? Se é isso, vc comprovou um conceito básico de
 BDs, em especial Oracle, que é : índices server pra ACELERAR SELECTs,
 SE puderem ser usados corretamente, ** E ** para degradar DMLs, sejam
 INSERTs, DELETEs ou UPDATEs, ambas as coisas estão sempre juntas. A
 causa é simples, quando vc faz um DML, além de mexer nos blocos da
 tabela, o banco TEM QUE atualizar o índice com a nova informação, e um
 índice é uma estrutura complexa, que obrigatoriamente TEM SEMPRE que
 estar ordenada, isso tem custo, então fazer DML numa tabela SEM índice
 é SEMPRE, por definição, mais rápido do que o mesmo DML numa tabela
 com índices, pois o índice tem que ser atualizado também
 Quanto aos PIOs (Physical IOs) e aos LIOs (Logical IOs), sim, vc não
 entendeu bem o conceito, deixa eu ver se consigo explicar : no bd
 Oracle, se o bloco onde há registro(s) a ser lido não está no cache, o
 banco vai ler no disco (isso é um PIO), ** E ** imediatamente , antes
 mesmo de ser usado, esse bloco TEM QUE ir pro cache, isso é um LIO.
 Então, TODO PIO (com exceção de blocos em tabelas GTTs, sorts/hashes,
 etc) no princípio gera um LIO, os PIOs ** já estão ** inclusos nos
 LIOs na primeira leitura do banco, é isso. Então cuidando dos LIOs vc
 não está desprezando os PIOs, na verdade os está cuidando de forma
 indireta, ok ?? O documento

 http://asktom.oracle.com/pls/ask/f?p=4950:8:F4950_P8_DISPLAYID:6643159615303
 no asktom ilustra o princípio, a idéia é vc PRIMEIRO focar em como
 alterar o SQL e/ou a estrutura do banco diminuir os LIOs, que de
 embrulho vc diminuindo os LIOs vc já baixa EM MUITO os PIOs, certo ?
 Feito isso, aí sim vc pode pensar nos PIOs, embora vai de regra eles
 já terão diminuído pracas, não deve ser possível fazer muito mais com
 eles. Pra ficar claro : PIOs num trace são os blocos marcados como
 Physical Reads, e LIOs são a soma dos blocos current gets + consistent
 gets.
 Quanto ao current/consistent get : é verdade que a leitura do cache é
 mais rápida do que leitura física, MAS mesmo leituras do cache ** não
 são ** grátis : leitura do cache implica que , na fração de segundo
 que eu estou lendo, ninguém pode alterar esse bloco, isso é, há um
 bloqueio em RAM nesse bloco, o latch. Então se vc pode obter a mesma
 informação lendo (digamos) 100 blocos, MAS por erro do SQL, da
 estrutura, o que for, vc está lendo 1000, esse SQL é ineficiente,
 AINDA QUE todas essas 1000 leituras tenham sido de RAM, eu fiz MUITO
 mais bloqueios em RAM (latches) do que o mínimo possível,estou
 gastando MUITO mais CPu que o mínimo necessário,  a hora que esse
 aplicativo começar a crescer, a atender mais usuários, esses latches
 extras vão começar a pesar na performance, é isso.

 == EM RESUMO : absolutamente NÂO basta vc só olhar se as leituras
 são físicas ou em RAm, vc tem é que tratar de fazer o MENOS de leitura
 de blocos possível, ok ? É isso. Esses pontos estão mais
 detalhadamente expostos em www.hotsos.com , no link Library escolha o
 paper Why You Should Focus on LIOs Instead of PIOs, vc tem que se
 registrar no site mas é grátis.
   Quanto ao Custo no explain plan, vc obtém isso SE estiver rodando em
 CBO, e tiver estatísticas, é isso.


 []s

 Chiappa
 E o método proposto se baseia no fato de que, SE vc diminuir o número
 de leituras em RAM, já que muitas Consistent gets são os blocos que
 --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
 escreveu
 
  Entedi, obrigado, nao sabia que o profiler era soh para pl...
 
  quanto ao autotrace consegui as informacoes
 
  COM INDICE :
 
Statistics
  --
0  recursive calls
0  db block gets
  142  consistent gets
0  physical reads
0  redo size
18795  bytes sent via SQL*Net to client
 8050  bytes received via SQL*Net from client
   70  SQL*Net roundtrips to/from client
1  sorts (memory)
0  sorts (disk)
 1000  rows processed
 
  SEM INDICE :
 
 
Statistics
  -
   0  recursive calls
   5  db block gets
 252  consistent gets
 182  physical reads
   0  redo size
   18796  bytes sent via SQL*Net to client
8002  bytes received via SQL*Net from client
  70  SQL*Net roundtrips to/from client
   2  sorts (memory)
   0  sorts (disk

Re: [oracle_br] Re: DBMS_Profiler Test - Uso de indice - Resultado estranhos

2006-01-12 Por tôpico Marcelo Cauduro
Impressionante

Perfeito

Muito, Muito Obrigado !

Agora entendi !

On 1/12/06, jlchiappa [EMAIL PROTECTED] wrote:

  Vamos fazer o teste certinho, então, em cima da última msg, e vamos
 ver o que acontece. Primeiro, vamos fazer o setup do ambiente, ie,
 tenho uma tabela não-minúscula, com apenas alguns POUCOS registros
 com um dado campo NULL, preciso dentro do universo maior da tabela o
 mais rapidamente possível recuper esses poucos, primeiro a criação :

 [EMAIL PROTECTED]:SQLcreate table T1 tablespace ORAUSERS as (select *
 from all_objects);

 Tabela criada.

 [EMAIL PROTECTED]:SQLinsert into T1 (select * from all_objects);

 2903 linhas criadas.

 [EMAIL PROTECTED]:SQLinsert into T1 (select * from all_objects);

 2903 linhas criadas.

 [EMAIL PROTECTED]:SQLinsert into T1 (select * from all_objects);

 2903 linhas criadas.

 [EMAIL PROTECTED]:SQLcommit;

 Validação completa.

 [EMAIL PROTECTED]:SQLalter table T1 modify (CREATED null);

 Tabela alterada.

 [EMAIL PROTECTED]:SQLdesc T1
 Nome  Nulo?Tipo
 -  --
 --
 OWNER NOT NULL VARCHAR2(30)
 OBJECT_NAME   NOT NULL VARCHAR2(30)
 SUBOBJECT_NAME VARCHAR2(30)
 OBJECT_ID NOT NULL NUMBER
 DATA_OBJECT_ID NUMBER
 OBJECT_TYPEVARCHAR2(18)
 CREATEDDATE
 LAST_DDL_TIME NOT NULL DATE
 TIMESTAMP  VARCHAR2(19)
 STATUS VARCHAR2(7)
 TEMPORARY  VARCHAR2(1)
 GENERATED  VARCHAR2(1)
 SECONDARY  VARCHAR2(1)

 [EMAIL PROTECTED]:SQLinsert into T1(owner, object_name, created,
 last_ddl_time, object_id)
   2* (select owner, object_name, NULL, last_ddl_time,
 object_id from all_objects where rownum  7);
 [EMAIL PROTECTED]:SQL/

 6 linhas criadas.

 [EMAIL PROTECTED]:SQLcommit;

 Validação completa.

 == OK, está setado o ambiente, reproduzi a sua situação, numa tabela
 maior tenho alguns poucos regs com null que quero acessar. Como já
 mostrado anteriormente, um índice simples ** NÂO ** ia adiantar
 grande coisa, pois NULLs nunca entram num índice b*tree. vamos criar
 a função que identifica os nulls, e o índice :

 [EMAIL PROTECTED]:SQLcreate or replace function func_ret_data_null
 (P_CREATED date) return NUMBER
   2  deterministic
   3  as
   4  BEGIN
   5 if P_CREATED is NOT null then
   6return null;
   7 end if;
   8  return 1;
   9* END;



 [EMAIL PROTECTED]:SQLcreate index idx_ret_data_null on T1
 (func_ret_data_null (CREATED));

 Índice criado.

 [EMAIL PROTECTED]:SQLset autotrace on

 == APESAR dessa tabela ser demasiado pequena pra impor uma demora
 palpável na máquina que estou usando, mesmo assim vou por o timing :

 [EMAIL PROTECTED]:SQLset timing on


 == AGORA o ponto-chave contra a análise por PIOs , a
 INCONFIABILIDADE. Vamos simular que os blocos não estão em cache (é
 NATURAL, num banco ocupado coisas entram e saem do cache a TODA HORA,
 é incontrolável, vamos simular que os blocos saíram do cache) :

 [EMAIL PROTECTED]:SQLalter tablespace ORAUSERS offline;

 Tablespace alterado.

 [EMAIL PROTECTED]:SQLalter tablespace ORAUSERS online;

 Tablespace alterado.

 == vamos executar :

 [EMAIL PROTECTED]:SQLselect object_id, object_name, created from T1
 where created is null;

  OBJECT_ID OBJECT_NAMECREATED
 -- -- ---
   4357 AGGXMLIMP
   4364 AGGXMLINPUTTYPE
   1813 ALL_ALL_TABLES
   5663 ALL_APPLY
   5682 ALL_APPLY_CONFLICT_COLUMNS
   5686 ALL_APPLY_DML_HANDLERS

 6 linhas selecionadas.

 Decorrido: 00:00:02.01

 Plano de Execução
 --
0  SELECT STATEMENT Optimizer=CHOOSE
10   TABLE ACCESS (FULL) OF 'T1'


 Estatística
 --
  41  recursive calls
   0  db block gets
 157  consistent gets
 148  physical reads
   0  redo size
 436  bytes sent via SQL*Net to client
 276  bytes received via SQL*Net from client
   2  SQL*Net roundtrips to/from client
   0  sorts (memory)
   0  sorts (disk)
   6  rows processed


 == suponha que na verdade a execução acima foi outro usuário que
 fez. Aí vc vai executar o mesmo cara, pra analisar performance :

 [EMAIL PROTECTED]:SQLselect object_id, object_name, created from T1
 where created is null;

  OBJECT_ID OBJECT_NAME   

Re: [oracle_br] Re: DBMS_Profiler Test - Uso de indice - Resultado estranhos

2006-01-11 Por tôpico Marcelo Cauduro
Entedi, obrigado, nao sabia que o profiler era soh para pl...

quanto ao autotrace consegui as informacoes

COM INDICE :

  Statistics
--
  0  recursive calls
  0  db block gets
142  consistent gets
  0  physical reads
  0  redo size
  18795  bytes sent via SQL*Net to client
   8050  bytes received via SQL*Net from client
 70  SQL*Net roundtrips to/from client
  1  sorts (memory)
  0  sorts (disk)
   1000  rows processed

SEM INDICE :


  Statistics
-
 0  recursive calls
 5  db block gets
   252  consistent gets
   182  physical reads
 0  redo size
 18796  bytes sent via SQL*Net to client
  8002  bytes received via SQL*Net from client
70  SQL*Net roundtrips to/from client
 2  sorts (memory)
 0  sorts (disk)
  1000  rows processed

Lendo um artigo do site ASKTOM ele disse que ignora os physical reads ,
posso mesmo fazer isso ?
Outra coisa, pelo que entendi ele leva apenas em conta o consistent
gets
tem mais alguma informacao relevante de todas essas do trace ?
ou realmente a consistent gets é a principal

Tendo consistent gets menores , a query é melhor ? é isso mesmo ?

eu estava olhando o concepts e pelo que entendi :
physical reads - Leitura fisica, numero de vezes que os blocos fisicos de
dados sao acessados
consistent gets - eu li mas nào entendi parece que é a leitura de
memoria ou consitencia de memoria com disco... talvez locks...
talvez acesso ao database buffer cache

mas como isso pode ser mais custoso do que leitura fisica ?

e mais uma coisa
usar o explain plan gera o custo para fazer o select ?
pois eu executando explain for.
e nao traz nada de custo... apenas informacoes como uso de indice etc.
select * from plan_Table

Muito Obrigado.

On 1/11/06, jlchiappa [EMAIL PROTECTED] wrote:

  profiler te mostra tempo de execução do PL/SQL, pra vc ver detalhes
 sobre o SQL (ie, plano, estatísticas se usando CBO, etc), o negócio é
 trace + tkprof, ou ao menos AUTOTRACE, como mostrado lá nos exemplos
 sobre FBI que passaram há uns dias pelo grupo.

 []s

 Chiappa
 --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
 escreveu
 
  Pessoal, estou fazendo o seguinte teste, para ter certeza no uso de
 um
  indice
  Tenho uma tabela com 4 registro, que vai crescer muito
 ainda.,
  muito muito mesmo
  ela ta pequenininha...
 
  tem um campo date preenchido na maior parte do registros , que
 algumas vezes
  será nullo,
  fiz uma funcao para pegar esse nulos sem ter que usar o is nulll, e
 quero
  ter certeza
  de que isso signifara ganho...
 
  Mas não sei se o meio qual estou fazendo o uso do DBMS_Profiler é o
  melhor...
  essa é a melhor maneira de fazer o meu teste ?
 
  O teste esta abaixo e as conclusoes que cheguei são péssimas
 
  Inserções :
 
  Obtive :
  -
  Sem indice
TESTE_FCTPROCEDURE3672,726
ANONYMOUS BLOCK0,531
  Com indice
  TESTE_FCTPROCEDURE5786,678
T_TRUNCFUNCTION199,851
ANONYMOUS BLOCK0,361
ao todo 5986,529
 
   Com indice ficou 63% mais lento
  -
  Consultas:
 
  Sem indice
1anonymousanonymousANONYMOUS BLOCK0,228
  Com idice
1anonymousanonymousANONYMOUS BLOCK0,223
 
Nao tive ganhos significativos
 
 
 
NAO TEM ALGUM COISA ERRADA ?
 
  -
 
  TESTE :
 
  1 Passo -
Criar Tabela
 
create table teste_function (a date,b number);
 
  2 Passo -
Criar function de indice:
 
create or replace function t_trunc(a date) return NUMBER
 deterministic
as
begin
--
  if a is NOT null then
  --
return null;
  --
  end if;
  --
  return 1;
--
end;
 
  3 Passo :
 
Usar o dbms_profiler para verificar quanto demora para inserir
 sem a
  funcao com indice e ver a perda,
e ver se compensa na hora de fazer as queries
 
-- Dispara o profiler
select decode(dbms_profiler.start_profiler, '0', 'Profiler
 started',
  'Profiler error')
from   dual;
 
create or replace procedure teste_fct as
begin
for ct in 1..2 loop
  insert into teste_function values (sysdate,1);
end loop;
end;
 
call teste_fct()
 
-- Execute o código
 
-- Para a execução
select decode(dbms_profiler.stop_profiler, '0', 'Profiler
 stopped',
  'Profiler error')
from   dual;
-- Salva nas tabelas
select decode(dbms_profiler.flush_data, '0', 'Profiler
 flushed', 'Profiler
  error')
from   dual;
-- Retorna o número do processo
select 'runid:' || plsql_profiler_runnumber.currval
from   dual;
 
 select u.unit_owner, u.unit_name, u.unit_type

Re: Não rodou - Re: [oracle_br] Re: Indice Baseado em Funcao no 9I funciona com RBO

2006-01-10 Por tôpico Marcelo Cauduro
/06, Marcelo Cauduro [EMAIL PROTECTED] wrote:

 Perfeito Chiappa, obrigado.

 On 1/7/06, jlchiappa [EMAIL PROTECTED] wrote:
 
  Exato, se realmente é uma minoria que tem null que te interessa, aí
  sim vale ** plenamente ** vc criar o índice na função que retorna 0
  pra quem tá nulo : é o conceito, vc usa o índice seletivo quando vc
  tem um PEQUENO conjunto que vc quer destacar dentro dum universo
  maior...
  Única coisa, vc teria que escrever a sua consulta com
 
  ...
  WHERE func_test2(data_de_pagamento) = 0
 
  pra aí sim ele achar os caras que estão nulos, é isso.
 
  []s
 
  Chiappa
  --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
  escreveu
  
   Chiappa muito obrigado pelo conceito esclarecido...
   entretanto quero somente confirmar se eh isso que vc quis dizer... :
  
   a tabela tem milhoes de registros
   a minoria dos dados tem data_de_pagamento null.
   e eu quero executar a seguinte querie
 select ID from tabela X where data_de_pagamento IS
  null
   Pois eu quero trabalhar com os registro que nao foram pagos
   Essa querie acima nao usuaria indice mas mesmo assim  naum seria
   vantagem eu criar um indice que usasse a funcao abaixo, para fazer
  com que
   no indice fiquem apenas as colunas nulas (a funcao retorna 0 para
  valores
   nullos e nulos para nao nulos ) ?
  
   create function func_test2 (a date) return number
  deterministic
  as
  begin
  --
  if a is not null then
  --
  return null;
  --
 end if;
 --
 return 0;
 --
 end;
 /
  
   create index idx_test_f2 on tab_test(func_test2(data_de_pagamento));
  
  
   On 1/7/06, jlchiappa [EMAIL PROTECTED] wrote:
   
--- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
escreveu

 Valeu Chiappa, esse indices inventei na hora... sem sentido
  mesmo... soh
 para ver se a busca ia por eles...
 Muito Obrigado

 Mas só uma dúvida, vc disse q a melhor maneira de trabalhar com
  data
é usar
 o between...
 ou seja,
 mesmo que eu sempre tenha um campo com data truncada para fazer
 comparacao, naum vale a pena criar o indice (eu digo de criar o
indice. pq
 se eu der o trunc na data na hora da querie ele deixa de usar o
indice) com
 a data truncada, mas sim usar o between ? eh isso mesmo ?
   
Se a data está gravada truncada (ie, vc tem 100% de certeza que a
porção hora não está nunca sendo gravada, portanto fica como
00:00:00), vc simplesmente faz :
   
WHERE campodata = TO_DATE('01/12/2005', 'dd/mm/')
   
ou, se for com SYSDATE a comparação, se faz :
   
WHERE campodata = TRUNC(sysdate);
   
que aí usa o índice normal, TRUNC na constante é ok, o que não se
recomenda é TRUNC no campo... Já se vc não tem certeza absoluta, aí
sim é escrever o SQL com between de 00:00:00 à 23:59:59, sim, é isso
 
mesmo... Pro caso de não ter certeza se tá truncado ou não, a
  sugestão
é : *** DEIXE ** de usar o TRUNC, pois aí , além de não precisar de
índice especial algum, vc deixa de ter uma função sendo aplicada a
 
CADA registro pesquisado... É aquele negócio, é um tiquinho extra de
nada de CPU que o bd gasta pra chamar o TRUNC em cada registro se vc
  o
tiver no campo da tabela, MAS de repente multiplicando esse tiquinho
 
por 1 milhão de regs, pode ser algo que valha a pena... Além do que,
quanto MENOS partes móveis , quanto menos coisas vc tiver pra se
preocupar, melhor...
   

 outra coisa , se a situacao fosse :
 um sistema de pagamentos que tem um campo data_de_pagamento,
  que
só é
 preenchida quando o documento foi pago...
 e vc quer saber todos os que naum foram pagos, ou seja, todos os
  que tem
 nulo na data vencimento..
 se vc naum pudesse alterar a arquitetura da tabela... seria a
  melhor
solucao
 criar um indice nessa coluna data_de_pagamento, um indice
  baseado numa
 funcao que, quando a coluna tiver valor, ou seja , foi efetuado o
pagamento
 , retornasse null e, quando nao tiver sido efetuado, retornaria
  1
 guardando nos indices apenas os naum pagos...
 eh uma ideia ridicula ou poderia ser usada ?
   
Vc não ganharia nada, veja : se eu criar um índice btree comum
  nesse
campo, ** naturalmente ** os registros onde esse campo-chave é null
  já
**  não ** entram nele. o índice selectivo que eu porpus serve pra
 
quando, DENTRO do universo grande de chaves não-nulas, vc quer
  indexar
só ** alguns ** registros  : indexar TODAS as não-nulas apenas isso
  já
acontece NATURALMENTE, é conceito de índices, se vc não tinha esse
conceito passe a ter, exemplo :
   
[EMAIL PROTECTED]:SQLcreate table tab_test(c1 varchar2(30), c2 number);
   
Tabela criada.
   
[EMAIL PROTECTED]:SQLinsert into tab_test (select null, object_id from
all_objects);
   
22045 linhas

Re: Não rodou - Re: [oracle_br] Re: Indice Baseado em Funcao no 9I funciona com RBO

2006-01-10 Por tôpico Marcelo Cauduro
-- os params query_nn eu setei no init, e não via alter session

é isso mesmo, dei alter system e rodou...

Valeu.

On 1/10/06, jlchiappa [EMAIL PROTECTED] wrote:

  Duas coisas eu vejo aí :

 a) return sysdate : isso não vai funcionar, pois A CADA HORA, cfrme o
 relógio do sistema avança, o sysdate retorna um valor diferente !! SE
 vc olhar direitinho no meu exemplo, eu peço uma CONSTANTE, que aí SIM
 é sempre a mesma , return 0; no meu caso

 b) os params query_nn eu setei no init, e não via alter session

 []s

 Chiappa

 --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
 escreveu
 
  Chiappa, acredita que ainda não rodou ?
 
  naum consigo o FBI em RBO no ORacle 8i...
 
  select * from v$version
 
  Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production
  PL/SQL Release 8.1.7.4.0 - Production
  CORE8.1.7.0.0Production
  TNS for Linux: Version 8.1.7.4.0 - Production
  NLSRTL Version 3.4.1.0.0 - Production
 
  timed_statistics TRUE
 
  Fiz um monte de alter session até mesmo sem saber o pq... para
 tentar ficar
  igual aos seus parametros...
 
  alter session set OPTIMIZER_MODE=rule ;
 
  alter session set query_rewrite_enabled=TRUE
 
  alter session set query_rewrite_integrity=TRUSTED
 
  alter session set text_enable=TRUE
 
  alter session set hash_join_enabled=true
 
  alter session set timed_statistics=true
 
  alter session set sql_trace=true
 
  alter session set oracle_trace_enable=true
 
  select name, value from v$parameter where
  isdefault='FALSE'
  ORDER BY NAME;
 
  1background_dump_dest/u01/app/oracle/admin/dvbco1/bdump
  2compatible8.1.7
  3control_files/u01/oracle/oradata/dvbco1/control01.ctl,
  /u02/oracle/oradata/dvbco1/control02.ctl
  4core_dump_dest/u01/app/oracle/admin/dvbco1/cdump
  5db_block_buffers2048
  6db_block_size4096
  7db_namedvbco1
  8event36 trace name errorstack level 3
  9hash_join_enabledTRUE
  10instance_namedvbco1
  11java_pool_size2500
  12large_pool_size8192000
  13log_buffer163840
  14log_checkpoint_interval1
  15log_checkpoint_timeout1800
  16max_enabled_roles80
  17open_cursors500
  18os_authent_prefix
  19processes350
  20remote_login_passwordfileEXCLUSIVE
  21rollback_segmentsR04, R01, R02, R03
  22service_namesdvbco1
  23shared_pool_reserved_size5033164
  24shared_pool_size50331648
  25sort_area_retained_size65536
  26sort_area_size65536
  27user_dump_dest/u01/app/oracle/admin/dvbco1/udump
  --28utl_file_dir/home/ftpbis/*
 
  select name, value from v$parameter --where
  --isdefault='FALSE'
  ORDER BY NAME;
 
  1O7_DICTIONARY_ACCESSIBILITYTRUE
  2active_instance_count
  3always_anti_joinNESTED_LOOPS
  4always_semi_joinstandard
  5aq_tm_processes0
  6audit_file_dest?/rdbms/audit
  7audit_trailNONE
  8background_core_dumppartial
  9background_dump_dest/u01/app/oracle/admin/dvbco1/bdump
  10backup_tape_io_slavesFALSE
  11bitmap_merge_area_size1048576
  12blank_trimmingFALSE
  13buffer_pool_keep
  14buffer_pool_recycle
  15commit_point_strength1
  16compatible8.1.7
  17control_file_record_keep_time7
  18control_files/u01/oracle/oradata/dvbco1/control01.ctl,
  /u02/oracle/oradata/dvbco1/control02.ctl
  19core_dump_dest/u01/app/oracle/admin/dvbco1/cdump
  20cpu_count4
  21create_bitmap_area_size8388608
  22cursor_sharingEXACT
  23cursor_space_for_timeFALSE
  24db_block_buffers2048
  25db_block_checkingFALSE
  26db_block_checksumFALSE
  27db_block_lru_latches2
  28db_block_max_dirty_target2048
  29db_block_size4096
  30db_domain
  31db_file_direct_io_count64
  32db_file_multiblock_read_count8
  33db_file_name_convert
  34db_files200
  35db_namedvbco1
  36db_writer_processes1
  37dblink_encrypt_loginFALSE
  38dbwr_io_slaves0
  39disk_asynch_ioTRUE
  40distributed_transactions107
  41dml_locks1716
  42enqueue_resources1936
  43event36 trace name errorstack level 3
  44fast_start_io_target2048
  45fast_start_parallel_rollbackLOW
  46fixed_date
  47gc_defer_time10
  48gc_files_to_locks
  49gc_releasable_locks0
  50gc_rollback_locks0-1024=32!8REACH
  51global_namesFALSE
  52hash_area_size131072
  53hash_join_enabledTRUE
  54hash_multiblock_io_count0
  55hi_shared_memory_address0
  56hpux_sched_noage
  57hs_autoregisterTRUE
  58ifile
  59instance_groups
  60instance_namedvbco1
  61instance_number0
  62java_max_sessionspace_size0

Re: Não rodou - Re: [oracle_br] Re: Indice Baseado em Funcao no 9I funciona com RBO

2006-01-10 Por tôpico Marcelo Cauduro
Obrigado Chiappa... vou realizar esse procedimento

On 1/10/06, jlchiappa [EMAIL PROTECTED] wrote:

  OK, só lembro que no 8i (onde não há spfile) um parâmetro alterado
 via ALTER SYSTEM não fica registrado no initfile, então só estará
 ativo enquanto o banco estiver, quando vc der um shutdown ele
 vai sumir, se vc quer usar isso permanentemente é alterar o
 initfile, também.

 []s

 Chiappa

 --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
 escreveu
 
  -- os params query_nn eu setei no init, e não via alter session
 
  é isso mesmo, dei alter system e rodou...
 
  Valeu.
 
  On 1/10/06, jlchiappa [EMAIL PROTECTED] wrote:
  
Duas coisas eu vejo aí :
  
   a) return sysdate : isso não vai funcionar, pois A CADA HORA,
 cfrme o
   relógio do sistema avança, o sysdate retorna um valor
 diferente !! SE
   vc olhar direitinho no meu exemplo, eu peço uma CONSTANTE, que aí
 SIM
   é sempre a mesma , return 0; no meu caso
  
   b) os params query_nn eu setei no init, e não via alter session
  
   []s
  
   Chiappa
  
   --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro
 [EMAIL PROTECTED]
   escreveu
   
Chiappa, acredita que ainda não rodou ?
   
naum consigo o FBI em RBO no ORacle 8i...
   
select * from v$version
   
Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production
PL/SQL Release 8.1.7.4.0 - Production
CORE8.1.7.0.0Production
TNS for Linux: Version 8.1.7.4.0 - Production
NLSRTL Version 3.4.1.0.0 - Production
   
timed_statistics TRUE
   
Fiz um monte de alter session até mesmo sem saber o pq... para
   tentar ficar
igual aos seus parametros...
   
alter session set OPTIMIZER_MODE=rule ;
   
alter session set query_rewrite_enabled=TRUE
   
alter session set query_rewrite_integrity=TRUSTED
   
alter session set text_enable=TRUE
   
alter session set hash_join_enabled=true
   
alter session set timed_statistics=true
   
alter session set sql_trace=true
   
alter session set oracle_trace_enable=true
   
select name, value from v$parameter where
isdefault='FALSE'
ORDER BY NAME;
   
1background_dump_dest/u01/app/oracle/admin/dvbco1/bdump
2compatible8.1.7
3control_files/u01/oracle/oradata/dvbco1/control01.ctl,
/u02/oracle/oradata/dvbco1/control02.ctl
4core_dump_dest/u01/app/oracle/admin/dvbco1/cdump
5db_block_buffers2048
6db_block_size4096
7db_namedvbco1
8event36 trace name errorstack level 3
9hash_join_enabledTRUE
10instance_namedvbco1
11java_pool_size2500
12large_pool_size8192000
13log_buffer163840
14log_checkpoint_interval1
15log_checkpoint_timeout1800
16max_enabled_roles80
17open_cursors500
18os_authent_prefix
19processes350
20remote_login_passwordfileEXCLUSIVE
21rollback_segmentsR04, R01, R02, R03
22service_namesdvbco1
23shared_pool_reserved_size5033164
24shared_pool_size50331648
25sort_area_retained_size65536
26sort_area_size65536
27user_dump_dest/u01/app/oracle/admin/dvbco1/udump
--28utl_file_dir/home/ftpbis/*
   
select name, value from v$parameter --where
--isdefault='FALSE'
ORDER BY NAME;
   
1O7_DICTIONARY_ACCESSIBILITYTRUE
2active_instance_count
3always_anti_joinNESTED_LOOPS
4always_semi_joinstandard
5aq_tm_processes0
6audit_file_dest?/rdbms/audit
7audit_trailNONE
8background_core_dumppartial
9background_dump_dest/u01/app/oracle/admin/dvbco1/bdump
10backup_tape_io_slavesFALSE
11bitmap_merge_area_size1048576
12blank_trimmingFALSE
13buffer_pool_keep
14buffer_pool_recycle
15commit_point_strength1
16compatible8.1.7
17control_file_record_keep_time7
18control_files/u01/oracle/oradata/dvbco1/control01.ctl,
/u02/oracle/oradata/dvbco1/control02.ctl
19core_dump_dest/u01/app/oracle/admin/dvbco1/cdump
20cpu_count4
21create_bitmap_area_size8388608
22cursor_sharingEXACT
23cursor_space_for_timeFALSE
24db_block_buffers2048
25db_block_checkingFALSE
26db_block_checksumFALSE
27db_block_lru_latches2
28db_block_max_dirty_target2048
29db_block_size4096
30db_domain
31db_file_direct_io_count64
32db_file_multiblock_read_count8
33db_file_name_convert
34db_files200
35db_namedvbco1
36db_writer_processes1
37dblink_encrypt_loginFALSE
38dbwr_io_slaves0
39disk_asynch_io

[oracle_br] Parametros antigos / novos

2006-01-09 Por tôpico Marcelo Cauduro
Pessoal,

Uma ajuda por favor,

No oracle 8i/9i para que o parametro UTL_FILE_DIR seja alterado é necessário
restartar a instancia...

Mas aí é que vem as dúvidas

-alterei o parametro utl_file_dir scope spfile mas se eu entrar na
v$parameters o novo parametros ainda não vai estar
la em value, mas supondo que eu queira verificar o valor a ser colocado ou
novo valor, como fazer ?

-se dei um Alter System set PARAMETER = VALUE em um parametro que possa ser
alterado
sem restartar a instancia , mas mudei de opniao... tem como voltar atras ?

-na v$instance eu consigo ver quando a instacia foi iniciada, tem como ver
um historico disso ?
Por exemplo ela foi inicia dia 1, depois no dia 4.

-supondo que vc acaba de sentar numa maquina com Oracle instalado e ja
iniciado, tem como vc
saber por views dinamicas se a instancia esta usando pfile ou spfile ?

-outra coisa, tem uma instancia aqui no servico que é 8i e tem um
utl_file_dir especificado na v$parameters,
entretanto o kra especificou sem restartar a instancia... ou seja, eu
consigo ver o parametro na v$parameters... mas ele
ainda não eh valido... tem como isso acontecer ?


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



--
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

 





Re: [oracle_br] Re: Parametros antigos / novos

2006-01-09 Por tôpico Marcelo Cauduro
Por ultimo, entrando na v$instance obtive
:
 7/1/2006 00:57:12
como data de inicializacao da instancia...

mas ontem (dia 8) eu olhei a v$parameter e nao havia nada no parametro
utl_file_dir , entrentao, hoje entrei de novo , depois de abrir um chamado
para o dba dessa maquina mudar esse parametro, e ele esta preenchido,
mas a instancia não foi restartada conforme a v$instance...

não consigo entender o porque disso...

como o parametro pode estar na v$parameter se a isntancia não foi restartada
..

a coluna STARTUP_TIME da v$instance é realmente a hora de inicializacao da
instancia ?

On 1/9/06, Marcelo Cauduro [EMAIL PROTECTED] wrote:

 Mas soh uma coisa , a view v$spparameter existe no Oracle 8i ?

 On 1/9/06, Marcelo Cauduro [EMAIL PROTECTED]  wrote:
 
  Obrigado Chiapa.
 
  Explicacao perfeita.
 
  On 1/9/06, jlchiappa  [EMAIL PROTECTED] wrote:
  
--- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
   escreveu
   
No oracle 8i/9i para que o parametro UTL_FILE_DIR seja alterado é
   necessário
restartar a instancia...
  
   Sim, embora no 9i vc tenha a opção de trabalhar com DIRECTORY, aí não
   há necessidade de re-start do banco, a única coisa é que nesse caso
   os seus progs TEM QUE serem re-escritos pra manipular os arqs via
   directory, ie, ao invés de :
  
   utl_file.fopen('C:\DADOS', nomedoarquivo, .
  
   vc teria que criar o indicador :
  
   CREATE DIRECTORY DIR_TESTE as 'C:\DADOS';
  
   e alterar o programa pra ele pedir :
  
   utl_file.fopen(DIR_TESTE, nomedoarquivo, .
  
  
   == caso não seja possível alterar os progs, aí sim, não tem jeito, é
   alterar o UTL_FILE_DIR e re-boot do banco, sem chance.
  
  
   
Mas aí é que vem as dúvidas
   
-alterei o parametro utl_file_dir scope spfile mas se eu entrar
   na
v$parameters o novo parametros ainda não vai estar
la em value,
  
   claro, pois v$parameter são os params que estão em ação no momento, e
   no seu exemplo vc só inseriu no spfile, ainda não restartou a máquina
   pro novo param entra em ação
  
   mas supondo que eu queira verificar o valor a ser colocado ou
novo valor, como fazer ?
  
   Isso fica registrado em outra view, cfrme :
  
   [EMAIL PROTECTED]:SQLshow parameter utl_file_dir
  
   NAME TYPEVALUE
    --- -
   -
   utl_file_dir string
   [EMAIL PROTECTED]:SQLalter system set utl_file_dir ='C:\' scope=spfile;
  
   Sistema alterado.
  
   [EMAIL PROTECTED]:SQLshow parameter utl_file_dir
  
   NAME TYPEVALUE
    --- -
   -
   utl_file_dir string
  
   [EMAIL PROTECTED]:SQLselect * from v$spparameter where
   name='utl_file_dir';
  
   SID
  
   NAME
  VALUE
   --
   -- ---
   - 
   --
   *
  
   utl_file_dir
  C:\
  
  
   == onde o SHOW PARAMETER é um atalho do sqlplus pra se consultar a
   v$parameter.
  
   
-se dei um Alter System set PARAMETER = VALUE em um parametro que
   possa ser
alterado
sem restartar a instancia , mas mudei de opniao... tem como voltar
   atras ?
  
   afaik vc tem que dar outro ALTER SYSTEM voltando o valor pro que vc
   quer.
   
-na v$instance eu consigo ver quando a instacia foi iniciada, tem
   como ver
um historico disso ?
  
   até o 9i não tem nada default pra isso, as v$ todas são perdidas após
   um re-start, se vc quiser tem um histórico vc deveria criar,
   normalmente via database triggers.
  
Por exemplo ela foi inicia dia 1, depois no dia 4.
   
-supondo que vc acaba de sentar numa maquina com Oracle instalado e
   ja
iniciado, tem como vc
saber por views dinamicas se a instancia esta usando pfile ou
   spfile ?
  
   Sim, através do parãmetro SPFILE, se ele estiver preenchido a
   instância deve estar usando spfile...
  
   
-outra coisa, tem uma instancia aqui no servico que é 8i e tem um
utl_file_dir especificado na v$parameters,
entretanto o kra especificou sem restartar a instancia... ou seja,
   eu
consigo ver o parametro na v$parameters... mas ele
ainda não eh valido... tem como isso acontecer ?
  
   afaik não tem não, certamente se vc está vendo na v$parameter num bd
   8i, é algum valor que já estava antes.
  
   []s
  
   Chiappa
  
  
  
  
  
   --
   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

Re: [oracle_br] Re: Parametros antigos / novos

2006-01-09 Por tôpico Marcelo Cauduro


 -- ---
 - -- -
 --
 --
 --
440
 utl_file_dir
 2 D:\CHIAPPA;C:\;D:\;,
 C:\TEMP;



 == a não ser que vc tenha errado e consultado a v$instance da
 instance errada, ou que o teu banco tenha algum tipo de
 replicação/alta disponibilidade tipo Parallel Server, não vejo como
 vc pode ter chegado ao que descreve.

 []s

 Chiappa


 --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
 escreveu
 
  Por ultimo, entrando na v$instance obtive
  :
   7/1/2006 00:57:12
  como data de inicializacao da instancia...
 
  mas ontem (dia 8) eu olhei a v$parameter e nao havia nada no
 parametro
  utl_file_dir , entrentao, hoje entrei de novo , depois de abrir um
 chamado
  para o dba dessa maquina mudar esse parametro, e ele esta
 preenchido,
  mas a instancia não foi restartada conforme a v$instance...
 
  não consigo entender o porque disso...
 
  como o parametro pode estar na v$parameter se a isntancia não foi
 restartada
  ..
 
  a coluna STARTUP_TIME da v$instance é realmente a hora de
 inicializacao da
  instancia ?
 
  On 1/9/06, Marcelo Cauduro [EMAIL PROTECTED] wrote:
  
   Mas soh uma coisa , a view v$spparameter existe no Oracle 8i ?
  
   On 1/9/06, Marcelo Cauduro [EMAIL PROTECTED]  wrote:
   
Obrigado Chiapa.
   
Explicacao perfeita.
   
On 1/9/06, jlchiappa  [EMAIL PROTECTED] wrote:

  --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro
 [EMAIL PROTECTED]
 escreveu
 
  No oracle 8i/9i para que o parametro UTL_FILE_DIR seja
 alterado é
 necessário
  restartar a instancia...

 Sim, embora no 9i vc tenha a opção de trabalhar com
 DIRECTORY, aí não
 há necessidade de re-start do banco, a única coisa é que
 nesse caso
 os seus progs TEM QUE serem re-escritos pra manipular os arqs
 via
 directory, ie, ao invés de :

 utl_file.fopen('C:\DADOS', nomedoarquivo, .

 vc teria que criar o indicador :

 CREATE DIRECTORY DIR_TESTE as 'C:\DADOS';

 e alterar o programa pra ele pedir :

 utl_file.fopen(DIR_TESTE, nomedoarquivo, .


 == caso não seja possível alterar os progs, aí sim, não tem
 jeito, é
 alterar o UTL_FILE_DIR e re-boot do banco, sem chance.


 
  Mas aí é que vem as dúvidas
 
  -alterei o parametro utl_file_dir scope spfile mas se
 eu entrar
 na
  v$parameters o novo parametros ainda não vai estar
  la em value,

 claro, pois v$parameter são os params que estão em ação no
 momento, e
 no seu exemplo vc só inseriu no spfile, ainda não restartou a
 máquina
 pro novo param entra em ação

 mas supondo que eu queira verificar o valor a ser colocado ou
  novo valor, como fazer ?

 Isso fica registrado em outra view, cfrme :

 [EMAIL PROTECTED]:SQLshow parameter utl_file_dir

 NAME TYPEVALUE
  --- -
 
 -
 utl_file_dir string
 [EMAIL PROTECTED]:SQLalter system set utl_file_dir ='C:\'
 scope=spfile;

 Sistema alterado.

 [EMAIL PROTECTED]:SQLshow parameter utl_file_dir

 NAME TYPEVALUE
  --- -
 
 -
 utl_file_dir string

 [EMAIL PROTECTED]:SQLselect * from v$spparameter where
 name='utl_file_dir';

 SID

 NAME
VALUE
 --
 
 -- ---
 
 - 
 
 --
 *

 utl_file_dir
C:\


 == onde o SHOW PARAMETER é um atalho do sqlplus pra se
 consultar a
 v$parameter.

 
  -se dei um Alter System set PARAMETER = VALUE em um
 parametro que
 possa ser
  alterado
  sem restartar a instancia , mas mudei de opniao... tem como
 voltar
 atras ?

 afaik vc tem que dar outro ALTER SYSTEM voltando o valor pro
 que vc
 quer.
 
  -na v$instance eu consigo ver quando a instacia foi
 iniciada, tem
 como ver
  um historico disso ?

 até o 9i não tem nada default pra isso, as v$ todas são
 perdidas após
 um re-start, se vc quiser tem um histórico vc deveria criar,
 normalmente via database triggers.

  Por exemplo ela foi inicia dia 1, depois no dia 4.
 
  -supondo que vc acaba de sentar numa maquina com Oracle
 instalado e
 ja
  iniciado, tem como vc
  saber por views dinamicas se a instancia esta usando pfile

Re: Não rodou - Re: [oracle_br] Re: Indice Baseado em Funcao no 9I funciona com RBO

2006-01-07 Por tôpico Marcelo Cauduro
Chiappa muito obrigado pelo conceito esclarecido...
entretanto quero somente confirmar se eh isso que vc quis dizer... :

a tabela tem milhoes de registros
a minoria dos dados tem data_de_pagamento null.
e eu quero executar a seguinte querie
  select ID from tabela X where data_de_pagamento IS null
Pois eu quero trabalhar com os registro que nao foram pagos
Essa querie acima nao usuaria indice mas mesmo assim  naum seria
vantagem eu criar um indice que usasse a funcao abaixo, para fazer com que
no indice fiquem apenas as colunas nulas (a funcao retorna 0 para valores
nullos e nulos para nao nulos ) ?

create function func_test2 (a date) return number
   deterministic
   as
   begin
   --
   if a is not null then
   --
   return null;
   --
  end if;
  --
  return 0;
  --
  end;
  /

create index idx_test_f2 on tab_test(func_test2(data_de_pagamento));


On 1/7/06, jlchiappa [EMAIL PROTECTED] wrote:

 --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
 escreveu
 
  Valeu Chiappa, esse indices inventei na hora... sem sentido mesmo... soh
  para ver se a busca ia por eles...
  Muito Obrigado
 
  Mas só uma dúvida, vc disse q a melhor maneira de trabalhar com data
 é usar
  o between...
  ou seja,
  mesmo que eu sempre tenha um campo com data truncada para fazer
  comparacao, naum vale a pena criar o indice (eu digo de criar o
 indice. pq
  se eu der o trunc na data na hora da querie ele deixa de usar o
 indice) com
  a data truncada, mas sim usar o between ? eh isso mesmo ?

 Se a data está gravada truncada (ie, vc tem 100% de certeza que a
 porção hora não está nunca sendo gravada, portanto fica como
 00:00:00), vc simplesmente faz :

 WHERE campodata = TO_DATE('01/12/2005', 'dd/mm/')

 ou, se for com SYSDATE a comparação, se faz :

 WHERE campodata = TRUNC(sysdate);

 que aí usa o índice normal, TRUNC na constante é ok, o que não se
 recomenda é TRUNC no campo... Já se vc não tem certeza absoluta, aí
 sim é escrever o SQL com between de 00:00:00 à 23:59:59, sim, é isso
 mesmo... Pro caso de não ter certeza se tá truncado ou não, a sugestão
 é : *** DEIXE ** de usar o TRUNC, pois aí , além de não precisar de
 índice especial algum, vc deixa de ter uma função sendo aplicada a
 CADA registro pesquisado... É aquele negócio, é um tiquinho extra de
 nada de CPU que o bd gasta pra chamar o TRUNC em cada registro se vc o
 tiver no campo da tabela, MAS de repente multiplicando esse tiquinho
 por 1 milhão de regs, pode ser algo que valha a pena... Além do que,
 quanto MENOS partes móveis , quanto menos coisas vc tiver pra se
 preocupar, melhor...

 
  outra coisa , se a situacao fosse :
  um sistema de pagamentos que tem um campo data_de_pagamento, que
 só é
  preenchida quando o documento foi pago...
  e vc quer saber todos os que naum foram pagos, ou seja, todos os que tem
  nulo na data vencimento..
  se vc naum pudesse alterar a arquitetura da tabela... seria a melhor
 solucao
  criar um indice nessa coluna data_de_pagamento, um indice baseado numa
  funcao que, quando a coluna tiver valor, ou seja , foi efetuado o
 pagamento
  , retornasse null e, quando nao tiver sido efetuado, retornaria 1
  guardando nos indices apenas os naum pagos...
  eh uma ideia ridicula ou poderia ser usada ?

 Vc não ganharia nada, veja : se eu criar um índice btree comum nesse
 campo, ** naturalmente ** os registros onde esse campo-chave é null já
 **  não ** entram nele. o índice selectivo que eu porpus serve pra
 quando, DENTRO do universo grande de chaves não-nulas, vc quer indexar
 só ** alguns ** registros  : indexar TODAS as não-nulas apenas isso já
 acontece NATURALMENTE, é conceito de índices, se vc não tinha esse
 conceito passe a ter, exemplo :

 [EMAIL PROTECTED]:SQLcreate table tab_test(c1 varchar2(30), c2 number);

 Tabela criada.

 [EMAIL PROTECTED]:SQLinsert into tab_test (select null, object_id from
 all_objects);

 22045 linhas criadas.

 == ok, vamos inserir alguns não-nulos :

 [EMAIL PROTECTED]:SQLinsert into tab_test values ('AAA', 1);

 1 linha criada.

 [EMAIL PROTECTED]:SQLinsert into tab_test values ('BBB', 2);

 1 linha criada.


 [EMAIL PROTECTED]:SQLselect count(*) from tab_test where c1 is not null;

   COUNT(*)
 --
  2

 == tenho aqui o caso que vc propôs, ie : tenho uma porrada de
 valores-xchave null e só alguns poucos registros onde ele é not null.
 vamos criar os índices :

 [EMAIL PROTECTED]:SQLcreate index idx_test on tab_test(c1);

 Índice criado.

 [EMAIL PROTECTED]:SQLcreate function func_test (a char) return number
   2   deterministic
   3   as
   4   begin
   5   --
   6   if a is null then
   7   --
   8   return null;
   9   --
 10  end if;
 11  --
 12  return 0;
 13  --
 14  end;
 15  /

 Função criada.

 [EMAIL PROTECTED]:SQLcreate index idx_test_f on tab_test(func_test(c1));

 Índice criado.

 [EMAIL PROTECTED]:SQLanalyze table tab_test compute statistics for table
 for all indexes

Re: Não rodou - Re: [oracle_br] Re: Indice Baseado em Funcao no 9I funciona com RBO

2006-01-07 Por tôpico Marcelo Cauduro
Perfeito Chiappa, obrigado.

On 1/7/06, jlchiappa [EMAIL PROTECTED] wrote:

 Exato, se realmente é uma minoria que tem null que te interessa, aí
 sim vale ** plenamente ** vc criar o índice na função que retorna 0
 pra quem tá nulo : é o conceito, vc usa o índice seletivo quando vc
 tem um PEQUENO conjunto que vc quer destacar dentro dum universo maior...
 Única coisa, vc teria que escrever a sua consulta com

 ...
 WHERE func_test2(data_de_pagamento) = 0

 pra aí sim ele achar os caras que estão nulos, é isso.

 []s

 Chiappa
 --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
 escreveu
 
  Chiappa muito obrigado pelo conceito esclarecido...
  entretanto quero somente confirmar se eh isso que vc quis dizer... :
 
  a tabela tem milhoes de registros
  a minoria dos dados tem data_de_pagamento null.
  e eu quero executar a seguinte querie
select ID from tabela X where data_de_pagamento IS
 null
  Pois eu quero trabalhar com os registro que nao foram pagos
  Essa querie acima nao usuaria indice mas mesmo assim  naum seria
  vantagem eu criar um indice que usasse a funcao abaixo, para fazer
 com que
  no indice fiquem apenas as colunas nulas (a funcao retorna 0 para
 valores
  nullos e nulos para nao nulos ) ?
 
  create function func_test2 (a date) return number
 deterministic
 as
 begin
 --
 if a is not null then
 --
 return null;
 --
end if;
--
return 0;
--
end;
/
 
  create index idx_test_f2 on tab_test(func_test2(data_de_pagamento));
 
 
  On 1/7/06, jlchiappa [EMAIL PROTECTED] wrote:
  
   --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
   escreveu
   
Valeu Chiappa, esse indices inventei na hora... sem sentido
 mesmo... soh
para ver se a busca ia por eles...
Muito Obrigado
   
Mas só uma dúvida, vc disse q a melhor maneira de trabalhar com data
   é usar
o between...
ou seja,
mesmo que eu sempre tenha um campo com data truncada para fazer
comparacao, naum vale a pena criar o indice (eu digo de criar o
   indice. pq
se eu der o trunc na data na hora da querie ele deixa de usar o
   indice) com
a data truncada, mas sim usar o between ? eh isso mesmo ?
  
   Se a data está gravada truncada (ie, vc tem 100% de certeza que a
   porção hora não está nunca sendo gravada, portanto fica como
   00:00:00), vc simplesmente faz :
  
   WHERE campodata = TO_DATE('01/12/2005', 'dd/mm/')
  
   ou, se for com SYSDATE a comparação, se faz :
  
   WHERE campodata = TRUNC(sysdate);
  
   que aí usa o índice normal, TRUNC na constante é ok, o que não se
   recomenda é TRUNC no campo... Já se vc não tem certeza absoluta, aí
   sim é escrever o SQL com between de 00:00:00 à 23:59:59, sim, é isso
   mesmo... Pro caso de não ter certeza se tá truncado ou não, a sugestão
   é : *** DEIXE ** de usar o TRUNC, pois aí , além de não precisar de
   índice especial algum, vc deixa de ter uma função sendo aplicada a
   CADA registro pesquisado... É aquele negócio, é um tiquinho extra de
   nada de CPU que o bd gasta pra chamar o TRUNC em cada registro se vc o
   tiver no campo da tabela, MAS de repente multiplicando esse tiquinho
   por 1 milhão de regs, pode ser algo que valha a pena... Além do que,
   quanto MENOS partes móveis , quanto menos coisas vc tiver pra se
   preocupar, melhor...
  
   
outra coisa , se a situacao fosse :
um sistema de pagamentos que tem um campo data_de_pagamento, que
   só é
preenchida quando o documento foi pago...
e vc quer saber todos os que naum foram pagos, ou seja, todos os
 que tem
nulo na data vencimento..
se vc naum pudesse alterar a arquitetura da tabela... seria a melhor
   solucao
criar um indice nessa coluna data_de_pagamento, um indice
 baseado numa
funcao que, quando a coluna tiver valor, ou seja , foi efetuado o
   pagamento
, retornasse null e, quando nao tiver sido efetuado, retornaria
 1
guardando nos indices apenas os naum pagos...
eh uma ideia ridicula ou poderia ser usada ?
  
   Vc não ganharia nada, veja : se eu criar um índice btree comum nesse
   campo, ** naturalmente ** os registros onde esse campo-chave é null já
   **  não ** entram nele. o índice selectivo que eu porpus serve pra
   quando, DENTRO do universo grande de chaves não-nulas, vc quer indexar
   só ** alguns ** registros  : indexar TODAS as não-nulas apenas isso já
   acontece NATURALMENTE, é conceito de índices, se vc não tinha esse
   conceito passe a ter, exemplo :
  
   [EMAIL PROTECTED]:SQLcreate table tab_test(c1 varchar2(30), c2 number);
  
   Tabela criada.
  
   [EMAIL PROTECTED]:SQLinsert into tab_test (select null, object_id from
   all_objects);
  
   22045 linhas criadas.
  
   == ok, vamos inserir alguns não-nulos :
  
   [EMAIL PROTECTED]:SQLinsert into tab_test values ('AAA', 1);
  
   1 linha criada.
  
   [EMAIL PROTECTED]:SQLinsert into tab_test values ('BBB', 2

Re: Não rodou - Re: [oracle_br] Re: Indice Baseado em Funcao no 9I funciona com RBO ?

2006-01-06 Por tôpico Marcelo Cauduro
Rodei o Insert, tem agora 70894 registros...
mas mesmo assim não foi

On 1/6/06, Marcio Portes [EMAIL PROTECTED] wrote:

  Incrementa a tabela... acho que essas 4 linhas estão no mesmo bloco.

 tenta ai.

 insert into a1234
 select sysdate
   from all_objects
 /
 commit;

 e tenta de novo.


 --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
 escreveu
 
  Chiappa, fui testar seu exemplo no 8i
 
  select * from v$version
 
  Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production
  PL/SQL Release 8.1.7.4.0 - Production
  CORE8.1.7.0.0Production
  TNS for Linux: Version 8.1.7.4.0 - Production
  NLSRTL Version 3.4.1.0.0 - Production
 
  alter session set OPTIMIZER_MODE=RULE;
 
  select NAME,VALUE from V$PARAMETER where upper(name) like '%QUERY%'
  query_rewrite_enabledFALSE
  query_rewrite_integrityenforced
 
  -- Criei uma tabela para teste
 
  create table a1234 (a date);
 
  -- Criei uma funcao para testes
 
  create or replace function t_trunc(a date) return  date
 deterministic
  as
  begin
  --
if a is null then
--
  return null;
--
end if;
--
return trunc(a);
  --
  end;
 
  -- Criei dois indices para teste, um usando uma funcao do sistema
 (a trunc)
  e outro usando uma funcao criado por mim
 
  create index ITESTANDO1 on a1234(trunc(a))
  create index ITESTANDO2 on a1234(t_trunc(a))
 
  -- Inseri alguns registros
 
  insert into a1234 values (trunc(sysdate))
  insert into a1234 values (trunc(sysdate))
  insert into a1234 values (null)
  insert into a1234 values (null)
 
  -- Rodei as querys
 
  select /*+ INDEX(a1234 ITESTANDO1) */
  * from a1234
  where trunc(a)=sysdate
 
  TABLE ACCESS FULL
 
  select /*+ INDEX(a1234 ITESTANDO2) */
  * from a1234
  where t_trunc(a)=trunc(sysdate)
 
  TABLE ACCESS FULL
 
  Sabe o por que ?
 
  On 1/5/06, Alex Fabiano Ribeiro [EMAIL PROTECTED] wrote:
  
Muito legal o exemplo Chiappa!
  
   -Mensagem original-
   De: oracle_br@yahoogrupos.com.br
 [mailto:[EMAIL PROTECTED]
   nome de jlchiappa
   Enviada em: quinta-feira, 5 de janeiro de 2006 13:20
   Para: oracle_br@yahoogrupos.com.br
   Assunto: [oracle_br] Re: Indice Baseado em Funcao no 9I funciona
 com RBO
   ?
  
  
   Segue um exemplinho, pra não ficar tão no ar :
  
  
   [EMAIL PROTECTED]:SQLshow parameters query
  
   NAME TYPEVALUE
    --- ---
   query_rewrite_enabledstring  FALSE
   query_rewrite_integrity  string  enforced
  
   [EMAIL PROTECTED]:SQLalter session set OPTIMIZER_MODE=RULE;
  
   Sessão alterada.
  
   [EMAIL PROTECTED]:SQLselect empno, ename, comm, sal from emp;
  
EMPNO ENAMECOMM
 SAL
   -- -- -- -
 -
 7369 SMITH
 800
 7499 ALLEN 300
 1600
 7521 WARD  500
 1250
 7566 JONES
 2975
 7654 MARTIN   1400
 1250
 7698 BLAKE
 2850
 7782 CLARK
 2450
 7788 SCOTT
 3000
 7839 KING
 5000
 7844 TURNER  0
 1500
 7876 ADAMS
 1100
 7900 JAMES
 950
 7902 FORD
 3000
 7934 MILLER
 1300
  
   [EMAIL PROTECTED]:SQLcreate or replace function func_comm_not_nulo
 (P_COMM
   number) return number
 2  deterministic
 3  as
 4  BEGIN
 5 if P_COMM is null then
 6return null;
 7 end if;
 8 return 0;
 9  END;
   10  /
  
   Função criada.
  
   [EMAIL PROTECTED]:SQL
   [EMAIL PROTECTED]:SQLcreate index IDX_COMM_NOT_NULO on EMP
   (func_comm_not_nulo(COMM));
  
   Índice criado.
  
   [EMAIL PROTECTED]:SQLset autotrace on
   [EMAIL PROTECTED]:SQLselect * from emp where func_comm_not_nulo(COMM)
 =0;
  
EMPNO ENAME  JOB  MGR
   HIREDATESAL   COMM DEPTNO
   -- -- - -- ---
 - --
    -- --
 7499 ALLEN  SALESMAN7698
   20/02/81   1600300 30
 7521 WARD   SALESMAN7698
   22/02/81   1250500 30
 7654 MARTIN SALESMAN7698
   28/09/81   1250   1400 30
 7844 TURNER SALESMAN7698
   08/09/81   1500  0 30
  
  
   Plano de Execução
   --
  0  SELECT STATEMENT Optimizer=CHOOSE
  10   TABLE ACCESS (FULL

[oracle_br] Indice Baseado em Funcao no 9I funciona com RBO ?

2006-01-05 Por tôpico Marcelo Cauduro
Pessoal,

Indice Baseado em Funcao no 9I funciona com RBO - Otimizador por Regra ?


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



--
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] Modelagem visando Perfomance - Btree or Bitmap - Datas e seus problemas

2006-01-05 Por tôpico Marcelo Cauduro
Pessoal,

Tenho uma tabela que recebe varias inserções e updates por dia.
Ela é uma tabela de referência para se saber o que já foi processado em um
determinado arquivo

Ela entre outras, possui duas colunas, uma de Data de Processo 1 e outra
Data de Processo 2, ambas do tipo Date.
Gravam-se nelas as datas em que cada um dos processo rodou. O processo 1 na
tabela Data de Processo 1 e o processo 2 na Data de Processo 2.
O primeiro processo a rodar é o 1, afinal, o 2 roda se, e somente se, o 1 ja
rodou.

Sendo assim , para identificar se já posso rodar o processo 2 (somente se o
1 ja rodou ) , o que seria melhor:

-Criar um b-tree index na coluna data de processo 1 e selecionar tudo que
for nulo. Entretanto, Não acho essa uma boa alternativa porque , pelo que
sei, o  indice b-tree não roda com valores nullos, certo ?
Então pensei em fazer a mesma coisa mas usando um indice bitmap, mas pelo
que li, parece que o indice bitmap não deve ser usado em tabelas com muitos
update

Outra opção:
-Criar coluna Estado que teria dois estados,
1 para processo1 realizado e 2 para processo1 e 2 realizado,
Dai criaria um b-tree indice para ela e selecionaria tudo que estiver com
valor 1
Se esse caso for bom, seria melhor nessa coluna um b-tree ou um bitmap, e
por que ?

Muito Obrigado Pessoal.


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



--
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

 




Re: [oracle_br] Re: Indice Baseado em Funcao no 9I funciona com RBO ?

2006-01-05 Por tôpico Marcelo Cauduro
Eu acho que sim, mas não ter certeza  :

Se eu forçar o CBO via HINTs terei de coletar estatisticas ?

On 1/5/06, jlchiappa [EMAIL PROTECTED] wrote:

  Não funciona : vc tem que forçar o CBO via HINTs , ou coisa do tipo
 pra poder usar FBI, se o seu sistema ainda está em RBO.

 []s

 Chiappa
 --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
 escreveu
 
  Pessoal,
 
  Indice Baseado em Funcao no 9I funciona com RBO - Otimizador por
 Regra ?
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 






 --
 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


  *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
 http://br.rd.yahoo.com/SIG=12feq5jj2/M=387526.7663462.8550203.1588051/D=brclubs/S=2137114689:HM/Y=BR/EXP=1136475593/A=3215516/R=2/SIG=16e56adpd/*http://landingstrip.dell.com/landingstrip/ls.asp?CID=10029LID=288321DGC=BADGStor=DHSDGSite=YahooConum=BRDURL=http://www1.la.dell.com/content/products/category.aspx/desktops?c%3Dbr%26l%3Dpt%26s%3Ddhs
 --
 *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][EMAIL PROTECTED]

- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo! http://br.yahoo.com/info/utos.html.




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



--
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] Modelagem visando Perfomance - Btree or Bitmap - Datas e seus problemas

2006-01-05 Por tôpico Marcelo Cauduro
Pessoal,

Tenho uma tabela que recebe varias inserções e updates por dia.
Ela é uma tabela de referência para se saber o que já foi processado em um
determinado arquivo

Ela entre outras, possui duas colunas, uma de Data de Processo 1 e outra
Data de Processo 2, ambas do tipo Date.
Gravam-se nelas as datas em que cada um dos processo rodou. O processo 1 na
tabela Data de Processo 1 e o processo 2 na Data de Processo 2.
O primeiro processo a rodar é o 1, afinal, o 2 roda se, e somente se, o 1 ja
rodou.

Sendo assim , para identificar se já posso rodar o processo 2 (somente se o
1 ja rodou ) , o que seria melhor:

-Criar um b-tree index na coluna data de processo 1 e selecionar tudo que
for nulo. Entretanto, Não acho essa uma boa alternativa porque , pelo que
sei, o  indice b-tree não roda com valores nullos, certo ?
Então pensei em fazer a mesma coisa mas usando um indice bitmap, mas pelo
que li, parece que o indice bitmap não deve ser usado em tabelas com muitos
update

Outra opção:
-Criar coluna Estado que teria dois estados,
1 para processo1 realizado e 2 para processo1 e 2 realizado,
Dai criaria um b-tree indice para ela e selecionaria tudo que estiver com
valor 1
Se esse caso for bom, seria melhor nessa coluna um b-tree ou um bitmap, e
por que ?

Muito Obrigado Pessoal.


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



--
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

 





Re: [oracle_br] Re: Modelagem visando Perfomance - Btree or Bitmap - Datas e seus problemas

2006-01-05 Por tôpico Marcelo Cauduro
Muito Obrigado Chiappa,ótima alteranativa, .

mas supondo que meu Oracle seja 8i... teria outra alternativa a FBI ?

On 1/5/06, jlchiappa [EMAIL PROTECTED] wrote:

  *** NENHUMA *** das duas opções, eu iria pra terceira, que é FBI
 (Function-Based Index), tipo : teria o campo de flag como nullable,
 escreveria uma função que me retornasse somente os (presumivelmente
 poucos) caras que tem o campo preenchido, e faria um FBI com essa
 função, aí só entrariam no índice os poucos registros com o flag
 preenchido. Assim, se a tabela tem (digamos) 1 milhão d eregistros, e
 num dado momento só há (digamos) mil registros com o campo de flag
 preenchido, vc só teria mil registros no índice fbi, ficando portanto
 ** muito ** menor que índice comum, e (o que é melhor) além de
 pequeno só os caras que são realmente necessários estariam lá. Eu uso
 bastante essa lógica aqui no cliente, obtive resultados EXCELENTES
 com ela, coisa de fazer processo de 8 horas cair pra duas...

 []s

 Chiappa
 --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
 escreveu
 
  Pessoal,
 
  Tenho uma tabela que recebe varias inserções e updates por dia.
  Ela é uma tabela de referência para se saber o que já foi
 processado em um
  determinado arquivo
 
  Ela entre outras, possui duas colunas, uma de Data de Processo 1
 e outra
  Data de Processo 2, ambas do tipo Date.
  Gravam-se nelas as datas em que cada um dos processo rodou. O
 processo 1 na
  tabela Data de Processo 1 e o processo 2 na Data de Processo 2.
  O primeiro processo a rodar é o 1, afinal, o 2 roda se, e somente
 se, o 1 ja
  rodou.
 
  Sendo assim , para identificar se já posso rodar o processo 2
 (somente se o
  1 ja rodou ) , o que seria melhor:
 
  -Criar um b-tree index na coluna data de processo 1 e selecionar
 tudo que
  for nulo. Entretanto, Não acho essa uma boa alternativa porque ,
 pelo que
  sei, o  indice b-tree não roda com valores nullos, certo ?
  Então pensei em fazer a mesma coisa mas usando um indice bitmap,
 mas pelo
  que li, parece que o indice bitmap não deve ser usado em tabelas
 com muitos
  update
 
  Outra opção:
  -Criar coluna Estado que teria dois estados,
  1 para processo1 realizado e 2 para processo1 e 2 realizado,
  Dai criaria um b-tree indice para ela e selecionaria tudo que
 estiver com
  valor 1
  Se esse caso for bom, seria melhor nessa coluna um b-tree ou um
 bitmap, e
  por que ?
 
  Muito Obrigado Pessoal.
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 






 --
 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


  *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
 http://br.rd.yahoo.com/SIG=12fhsm0ri/M=387526.7663462.8550203.1588051/D=brclubs/S=2137114689:HM/Y=BR/EXP=1136481349/A=3215516/R=2/SIG=16e56adpd/*http://landingstrip.dell.com/landingstrip/ls.asp?CID=10029LID=288321DGC=BADGStor=DHSDGSite=YahooConum=BRDURL=http://www1.la.dell.com/content/products/category.aspx/desktops?c%3Dbr%26l%3Dpt%26s%3Ddhs
 --
 *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][EMAIL PROTECTED]

- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo! http://br.yahoo.com/info/utos.html.




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



--
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

 




Re: [oracle_br] Re: Modelagem visando Perfomance - Btree or Bitmap - Datas e seus problemas

2006-01-05 Por tôpico Marcelo Cauduro
Muito Obrigado... Ótima explanação

fica apenas uma dúvida aparente o FBI é uma das melhores alternativas em
alguns casos mas fico com uma dúvida persistente..

Tenho uma tabela com 100.000 registros
tenho um campo de status com dois status apenas, 'A' de ativo e 'I' de
inativo...

supondo que cada um tenha 50 mil registros cada... teria diferenca ter um
indice nessa coluna ?
E supondo outra situacao, se uma tiver 2 registro e a outra 8, teria
diferenca o indice ?
Seria melhor ser Btree ou Bitmap ?


Muito Obrigado



On 1/5/06, jlchiappa [EMAIL PROTECTED] wrote:

  Seguinte, dá uma olhada no exemplinho que acabei de mandar pra outra
 pergunta, que tá completinho (eu o fiz em 9i, mas funcionaria
 perfeitamente no 8i versão 8.1.7.x, é onde eu o usava no começo do
 ano passado, antes de migrar o meu sistema pra 9i) - e lógico, lá no
 exemplinho o outro colega queria usar FBI em otimização de ROLE,
 então eu (urgh!!) meti hints no SELECT, vc em tendo um sistema
 civilizado, escrito em CBO (deve ser, já que vc está desenvolvendo
 agora) logicamente não precisa dessa coisarada...

 O conceito que vc tinha está não errado, mas incompleto : é assim,
 em todo e qualquer índice b*tree (seja FBI, seja índice
 b*tree comum), realmente ** NÂO É ** todos os registros que entram
 no índice, e sim APENAS os registros onde a chave não é nula, chaves
 nulas nunca, nunca entram no índice b*tree), o truque que estou
 usando portanto depende desse conceito, SE uma função retornar um
 nulo e a função é o que está sendo indexado, nulls não entram no
 índice, o índice ficou portanto só com os regs q me interessam.

 []s

   Chiappa
 --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
 escreveu
 
  Além disso, só mais uma coisa, você mencionou em criar um FBI para
 apenas os
  que tem o valor preenchido...
 
  mas como ?
 
  seria um:
 
  create index X on TABELA ( ? )
 
  mas que função ? como ele restringiria ?
 
  pois sempre pensei que no indice FBI eu teria todos os valoles...
 iguais aos
  outros indices ... mas eles teriam em epscial o tratamento dado
 pela funcao,
  por exemplo ,se eu quisesse um indice com data truncadas, ele
 guardaria o
  row id e data truncada.de Todos os valores...
  mas pelo que você disse é possivel deixar o FBI somente com os
 registros
  necessários ao meu objetivo  como ?
 
  On 1/5/06, Marcelo Cauduro [EMAIL PROTECTED] wrote:
  
   Muito Obrigado Chiappa,ótima alteranativa, .
  
   mas supondo que meu Oracle seja 8i... teria outra alternativa a
 FBI ?
  
   On 1/5/06, jlchiappa [EMAIL PROTECTED]  wrote:
   
 *** NENHUMA *** das duas opções, eu iria pra terceira, que é
 FBI
(Function-Based Index), tipo : teria o campo de flag como
 nullable,
escreveria uma função que me retornasse somente os
 (presumivelmente
poucos) caras que tem o campo preenchido, e faria um FBI com
 essa
função, aí só entrariam no índice os poucos registros com o flag
preenchido. Assim, se a tabela tem (digamos) 1 milhão d
 eregistros, e
num dado momento só há (digamos) mil registros com o campo de
 flag
preenchido, vc só teria mil registros no índice fbi, ficando
 portanto
** muito ** menor que índice comum, e (o que é melhor) além de
pequeno só os caras que são realmente necessários estariam lá.
 Eu uso
bastante essa lógica aqui no cliente, obtive resultados
 EXCELENTES
com ela, coisa de fazer processo de 8 horas cair pra duas...
   
[]s
   
Chiappa
--- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro
 [EMAIL PROTECTED]
escreveu

 Pessoal,

 Tenho uma tabela que recebe varias inserções e updates por
 dia.
 Ela é uma tabela de referência para se saber o que já foi
processado em um
 determinado arquivo

 Ela entre outras, possui duas colunas, uma de Data de
 Processo 1
e outra
 Data de Processo 2, ambas do tipo Date.
 Gravam-se nelas as datas em que cada um dos processo rodou. O
processo 1 na
 tabela Data de Processo 1 e o processo 2 na Data de
 Processo 2.
 O primeiro processo a rodar é o 1, afinal, o 2 roda se, e
 somente
se, o 1 ja
 rodou.

 Sendo assim , para identificar se já posso rodar o processo 2
(somente se o
 1 ja rodou ) , o que seria melhor:

 -Criar um b-tree index na coluna data de processo 1 e
 selecionar
tudo que
 for nulo. Entretanto, Não acho essa uma boa alternativa
 porque ,
pelo que
 sei, o  indice b-tree não roda com valores nullos, certo ?
 Então pensei em fazer a mesma coisa mas usando um indice
 bitmap,
mas pelo
 que li, parece que o indice bitmap não deve ser usado em
 tabelas
com muitos
 update

 Outra opção:
 -Criar coluna Estado que teria dois estados,
 1 para processo1 realizado e 2 para processo1 e 2 realizado,
 Dai criaria um b-tree indice para ela e selecionaria tudo que
estiver com
 valor 1
 Se esse caso

Re: [oracle_br] Re: Indice Baseado em Funcao no 9I funciona com RBO ?

2006-01-05 Por tôpico Marcelo Cauduro
   0  redo size
 910  bytes sent via SQL*Net to client
 499  bytes received via SQL*Net from client
   2  SQL*Net roundtrips to/from client
   4  sorts (memory)
   0  sorts (disk)
   4  rows processed

 [EMAIL PROTECTED]:SQL

 []s

 Chiappa
 --- Em oracle_br@yahoogrupos.com.br, jlchiappa [EMAIL PROTECTED]
 escreveu
 
  Nada disso : as estatísticas são usadas pro CBO poder escolher as
  possibilidades e montar um plano, MAS quando vc usa um hint vc **
 já
  está ** indicando que tipo de plano quer, então não
 obrigatoriamente
  vc tem que calcular stats, ele já sabe que tipo de plano vc
 quer...
 
   == CLARO, de modo nenhum isso é o recomendado, mas ** se ** o teu
  sistema está em RBO, é tapar o nariz e ir pras hints...
 
  []s
 
   Chiappa
  --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro
 [EMAIL PROTECTED]
  escreveu
  
   Eu acho que sim, mas não ter certeza  :
  
   Se eu forçar o CBO via HINTs terei de coletar estatisticas ?
  
   On 1/5/06, jlchiappa [EMAIL PROTECTED] wrote:
   
 Não funciona : vc tem que forçar o CBO via HINTs , ou coisa
 do
  tipo
pra poder usar FBI, se o seu sistema ainda está em RBO.
   
[]s
   
Chiappa
--- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro
  [EMAIL PROTECTED]
escreveu

 Pessoal,

 Indice Baseado em Funcao no 9I funciona com RBO - Otimizador
 por
Regra ?


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

   
   
   
   
   
   

 --
  
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
   
   
 *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
   
 
 http://br.rd.yahoo.com/SIG=12feq5jj2/M=387526.7663462.8550203.1588051
  /D=brclubs/S=2137114689:HM/Y=BR/EXP=1136475593/A=3215516/R=2/SIG=16e
 56
  adpd/*http://landingstrip.dell.com/landingstrip/ls.asp?
 
 CID=10029LID=288321DGC=BADGStor=DHSDGSite=YahooConum=BRDURL=http
  ://www1.la.dell.com/content/products/category.aspx/desktops?c%3Dbr%
  26l%3Dpt%26s%3Ddhs
--
*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]oracle_br-
  [EMAIL PROTECTED]
   
   - O uso que você faz do Yahoo! Grupos está sujeito aos
 Termos
  do
   Serviço do Yahoo! http://br.yahoo.com/info/utos.html.
   
   
  
  
   [As partes desta mensagem que não continham texto foram removidas]
  
 






 --
 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


  *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
 http://br.rd.yahoo.com/SIG=12fg89jmf/M=387526.7663462.8550203.1588051/D=brclubs/S=2137114689:HM/Y=BR/EXP=1136485270/A=3215516/R=2/SIG=16e56adpd/*http://landingstrip.dell.com/landingstrip/ls.asp?CID=10029LID=288321DGC=BADGStor=DHSDGSite=YahooConum=BRDURL=http://www1.la.dell.com/content/products/category.aspx/desktops?c%3Dbr%26l%3Dpt%26s%3Ddhs
 --
 *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][EMAIL PROTECTED]

- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo! http://br.yahoo.com/info/utos.html.




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



--
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

Re: [oracle_br] Re: Modelagem visando Perfomance - Btree or Bitmap - Datas e seus problemas

2006-01-05 Por tôpico Marcelo Cauduro
Impressionante...

Muito obrigado

On 1/5/06, jlchiappa [EMAIL PROTECTED] wrote:

  É assim : índice, seja qual for, é extremamente útil pra quando vc
 quer recuperar relativamente ** POUCOS ** registros dentro do
 universo maior da tabela. Isso porque buscar alguma coisa via índice
 significa : o banco recebe o valor-chave, procura no índice até achar
 esse valor, e nesse local do índice tem um rowid indicando onde
 fisicamente em disco está o registro da tabela, que é diretamente
 acessado então.   Assim, se vc for recuperar (digamos) 1 registro via
 índice, vc teve que acessar uns bloquinhos do índice (2 ou 3,
 digamos) , aí achou o ROWID, aí acessou o bloco da tabela onde está o
 registro - certamente isso foi compensador, porque nesse caso o full-
 scan ia ler muito mais blocos. Se fossem digamos 5 ou 10 registros,
 vc multiplicaria esse overhead do índice por 5 ou 10, tá crescendo,
 mas ainda certamente vale mais a pena ir por índice. PORÉM, cfrme a
 quntidade de registros a ler sobe mais e mais, esses bloquinhos
 extras do índice pesam mais e mais, até chegar num ponto que compensa
 mais já se ler diretamente a tabela via table-scan, o que inclusive
 tem a vantagem de poder ser feito muito rapidamente, já que ao
 contrário do índice, que é uma estrutura complexa (com vários tipos
 de blocos) uma tabela é só ler aos pedações, não há o que analisar..
 Aí vem a pergunta, que ponto é esse, onde começa a ser ruim acesso
 por índice  ?? Há grande discórdia entre os autores e entendidos no
 mundo Oracle, alguns falam que índice compensa só se vc for ler até
 15% dos registros indexados, outros falam em 10% ou 20% ou 25%, na
 verdade há alguma variação natural, mas com certeza 50% tá bem acima,
 normalmente já começa  a valer a pena full-scan, então no teu exemplo
 de tabela com 100 mil, onde metade (50 mil) é = 'A' e a outra metade
 é 'B', certamente não deve valer a pena índice não. Já no outro caso
 proposto, onde vc tem 20 mil e 80 mil, 20 mil representam 25% , pode
 sim valer a pena um índice aí

 Quanto á b*tree ou bitmap, o ponto principal a favor do bitmap é que
 ele permite operações de join de índices, tipo usar um pedaço de
 cada índice numa busca,  e coisas do tipo, o que o b*tree não, isso é
 excelente pros casos de várias tabelas indexadas serem joineadas
 frequentemente, e o ponto contra é que ele indexa os nulos E , quando
 ocorre DML na tabela (ie, INSERT, UPDATE, DELETE) o lock é no bitmap
 inteiro, outras sessões que estiverem tentando usar esse índice
 sofre. VEJA, não é que ** qualquer ** UPDATE/INSERT/DELETE derrote a
 idéia de bitmap, o problema aqui é a frequência (quntidade) e o fato
 de houverem ou não outras sessões querendo usar ao mesmo tempo.

 []s

 Chiappa

 --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
 escreveu
 
  Muito Obrigado... Ótima explanação
 
  fica apenas uma dúvida aparente o FBI é uma das melhores
 alternativas em
  alguns casos mas fico com uma dúvida persistente..
 
  Tenho uma tabela com 100.000 registros
  tenho um campo de status com dois status apenas, 'A' de ativo e 'I'
 de
  inativo...
 
  supondo que cada um tenha 50 mil registros cada... teria diferenca
 ter um
  indice nessa coluna ?
  E supondo outra situacao, se uma tiver 2 registro e a outra
 8, teria
  diferenca o indice ?
  Seria melhor ser Btree ou Bitmap ?
 
 
  Muito Obrigado
 
 
 
  On 1/5/06, jlchiappa [EMAIL PROTECTED] wrote:
  
Seguinte, dá uma olhada no exemplinho que acabei de mandar pra
 outra
   pergunta, que tá completinho (eu o fiz em 9i, mas funcionaria
   perfeitamente no 8i versão 8.1.7.x, é onde eu o usava no começo do
   ano passado, antes de migrar o meu sistema pra 9i) - e lógico, lá
 no
   exemplinho o outro colega queria usar FBI em otimização de ROLE,
   então eu (urgh!!) meti hints no SELECT, vc em tendo um sistema
   civilizado, escrito em CBO (deve ser, já que vc está desenvolvendo
   agora) logicamente não precisa dessa coisarada...
  
   O conceito que vc tinha está não errado, mas incompleto : é assim,
   em todo e qualquer índice b*tree (seja FBI, seja índice
   b*tree comum), realmente ** NÂO É ** todos os registros que
 entram
   no índice, e sim APENAS os registros onde a chave não é nula,
 chaves
   nulas nunca, nunca entram no índice b*tree), o truque que estou
   usando portanto depende desse conceito, SE uma função retornar um
   nulo e a função é o que está sendo indexado, nulls não entram no
   índice, o índice ficou portanto só com os regs q me interessam.
  
   []s
  
 Chiappa
   --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro
 [EMAIL PROTECTED]
   escreveu
   
Além disso, só mais uma coisa, você mencionou em criar um FBI
 para
   apenas os
que tem o valor preenchido...
   
mas como ?
   
seria um:
   
create index X on TABELA ( ? )
   
mas que função ? como ele restringiria ?
   
pois sempre pensei que no indice FBI eu teria todos os
 valoles

Re: [oracle_br] Re: Modelagem visando Perfomance - Btree or Bitmap - Datas e seus problemas

2006-01-05 Por tôpico Marcelo Cauduro
Só mais uma coisa, vc disse :

Já no outro caso
proposto, onde vc tem 20 mil e 80 mil, 20 mil representam 25% , pode
sim valer a pena um índice aí

Status = 'A' 20 Mil registros
Status = 'B' 80 Mil registros

Valeria a pena somente se eu tivesse com objetivo em minha querie buscar os
25%, ou seja, o campo que representa esses 20 mil, no caso o status 'A',
porque se eu quisesse buscar o campo com o status que tem 80 mil registro,
no caso o 'B' não valeria a pena...
É isso mesmo ?

E se for isso mesmo... e eu estiver usando CBO... o otimizador seria capaz (
se eu estiver colhendo as estatistica corretamente) de ver que com um
determinado valor ( no caso o valor 'A' no Status) teria de ir buscar o
valor pelo indice e com outro valor( no caso  o valor 'B')  teria de fazer
um Full Scan ?

E em RBO ? Ele iria por indice nas duas vezes ?

On 1/5/06, Marcelo Cauduro [EMAIL PROTECTED] wrote:

 Impressionante...

 Muito obrigado

 On 1/5/06, jlchiappa [EMAIL PROTECTED] wrote:
 
   É assim : índice, seja qual for, é extremamente útil pra quando vc
  quer recuperar relativamente ** POUCOS ** registros dentro do
  universo maior da tabela. Isso porque buscar alguma coisa via índice
  significa : o banco recebe o valor-chave, procura no índice até achar
  esse valor, e nesse local do índice tem um rowid indicando onde
  fisicamente em disco está o registro da tabela, que é diretamente
  acessado então.   Assim, se vc for recuperar (digamos) 1 registro via
  índice, vc teve que acessar uns bloquinhos do índice (2 ou 3,
  digamos) , aí achou o ROWID, aí acessou o bloco da tabela onde está o
  registro - certamente isso foi compensador, porque nesse caso o full-
  scan ia ler muito mais blocos. Se fossem digamos 5 ou 10 registros,
  vc multiplicaria esse overhead do índice por 5 ou 10, tá crescendo,
  mas ainda certamente vale mais a pena ir por índice. PORÉM, cfrme a
  quntidade de registros a ler sobe mais e mais, esses bloquinhos
  extras do índice pesam mais e mais, até chegar num ponto que compensa
  mais já se ler diretamente a tabela via table-scan, o que inclusive
  tem a vantagem de poder ser feito muito rapidamente, já que ao
  contrário do índice, que é uma estrutura complexa (com vários tipos
  de blocos) uma tabela é só ler aos pedações, não há o que analisar..
  Aí vem a pergunta, que ponto é esse, onde começa a ser ruim acesso
  por índice  ?? Há grande discórdia entre os autores e entendidos no
  mundo Oracle, alguns falam que índice compensa só se vc for ler até
  15% dos registros indexados, outros falam em 10% ou 20% ou 25%, na
  verdade há alguma variação natural, mas com certeza 50% tá bem acima,
  normalmente já começa  a valer a pena full-scan, então no teu exemplo
  de tabela com 100 mil, onde metade (50 mil) é = 'A' e a outra metade
  é 'B', certamente não deve valer a pena índice não. Já no outro caso
  proposto, onde vc tem 20 mil e 80 mil, 20 mil representam 25% , pode
  sim valer a pena um índice aí
 
  Quanto á b*tree ou bitmap, o ponto principal a favor do bitmap é que
  ele permite operações de join de índices, tipo usar um pedaço de
  cada índice numa busca,  e coisas do tipo, o que o b*tree não, isso é
  excelente pros casos de várias tabelas indexadas serem joineadas
  frequentemente, e o ponto contra é que ele indexa os nulos E , quando
  ocorre DML na tabela (ie, INSERT, UPDATE, DELETE) o lock é no bitmap
  inteiro, outras sessões que estiverem tentando usar esse índice
  sofre. VEJA, não é que ** qualquer ** UPDATE/INSERT/DELETE derrote a
  idéia de bitmap, o problema aqui é a frequência (quntidade) e o fato
  de houverem ou não outras sessões querendo usar ao mesmo tempo.
 
  []s
 
  Chiappa
 
  --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
  escreveu
  
   Muito Obrigado... Ótima explanação
  
   fica apenas uma dúvida aparente o FBI é uma das melhores
  alternativas em
   alguns casos mas fico com uma dúvida persistente..
  
   Tenho uma tabela com 100.000 registros
   tenho um campo de status com dois status apenas, 'A' de ativo e 'I'
  de
   inativo...
  
   supondo que cada um tenha 50 mil registros cada... teria diferenca
  ter um
   indice nessa coluna ?
   E supondo outra situacao, se uma tiver 2 registro e a outra
  8, teria
   diferenca o indice ?
   Seria melhor ser Btree ou Bitmap ?
  
  
   Muito Obrigado
  
  
  
   On 1/5/06, jlchiappa [EMAIL PROTECTED] wrote:
   
 Seguinte, dá uma olhada no exemplinho que acabei de mandar pra
  outra
pergunta, que tá completinho (eu o fiz em 9i, mas funcionaria
perfeitamente no 8i versão 8.1.7.x, é onde eu o usava no começo do
ano passado, antes de migrar o meu sistema pra 9i) - e lógico, lá
  no
exemplinho o outro colega queria usar FBI em otimização de ROLE,
então eu (urgh!!) meti hints no SELECT, vc em tendo um sistema
civilizado, escrito em CBO (deve ser, já que vc está desenvolvendo
agora) logicamente não precisa dessa coisarada

Re: [oracle_br] Re: Modelagem visando Perfomance - Btree or Bitmap - Datas e seus problemas

2006-01-05 Por tôpico Marcelo Cauduro
Muito Obrigado 

On 1/5/06, jlchiappa [EMAIL PROTECTED] wrote:

  --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro [EMAIL PROTECTED]
 escreveu
 
  Só mais uma coisa, vc disse :
 
  Já no outro caso
  proposto, onde vc tem 20 mil e 80 mil, 20 mil representam 25% , pode
  sim valer a pena um índice aí
 
  Status = 'A' 20 Mil registros
  Status = 'B' 80 Mil registros
 
  Valeria a pena somente se eu tivesse com objetivo em minha querie
 buscar os
  25%, ou seja, o campo que representa esses 20 mil, no caso o
 status 'A',
  porque se eu quisesse buscar o campo com o status que tem 80 mil
 registro,
  no caso o 'B' não valeria a pena...
  É isso mesmo ?

 Exato, se 'A' representa 25%. normalmente, via de regra, ainda vale a
 pena os localizar via índice.

 
  E se for isso mesmo... e eu estiver usando CBO... o otimizador
 seria capaz (
  se eu estiver colhendo as estatistica corretamente) de ver que com
 um
  determinado valor ( no caso o valor 'A' no Status) teria de ir
 buscar o
  valor pelo indice e com outro valor( no caso  o valor 'B')  teria
 de fazer
  um Full Scan ?

 === PRECISAMENTE  É exatamente pra isto que serve o CBO : se
 vc o configura (params optimizer_nn, parãmetros de PGA, etc), passa a
 informação de quantos valores distintos e totais vc tem no índice e
 na tabela (estatísticas e histogramas), na esmagadora maioria das
 vezes (tipo, 9 vezes em 10) , ele é totalmente capaz de checar se
 vale a pena usar índice ou não, é isso sim.

 
  E em RBO ? Ele iria por indice nas duas vezes ?

 Sendo índice comum, não-FBI, muito provavelmente sim :  o RBO é bem
 burrinho, a lógica dele é : tenho um índice disponível , uso-o, ele é
 totalmente incapaz de avaliar se o overhead natural dos índices vale
 a pena ou não, se a leitura por pedações de uma vez que o full
 table scan faz vale a pena ou não... Bem ruinzinho...

 []s

 Chiappa

 
  On 1/5/06, Marcelo Cauduro [EMAIL PROTECTED] wrote:
  
   Impressionante...
  
   Muito obrigado
  
   On 1/5/06, jlchiappa [EMAIL PROTECTED] wrote:
   
 É assim : índice, seja qual for, é extremamente útil pra
 quando vc
quer recuperar relativamente ** POUCOS ** registros dentro do
universo maior da tabela. Isso porque buscar alguma coisa via
 índice
significa : o banco recebe o valor-chave, procura no índice até
 achar
esse valor, e nesse local do índice tem um rowid indicando onde
fisicamente em disco está o registro da tabela, que é
 diretamente
acessado então.   Assim, se vc for recuperar (digamos) 1
 registro via
índice, vc teve que acessar uns bloquinhos do índice (2 ou 3,
digamos) , aí achou o ROWID, aí acessou o bloco da tabela onde
 está o
registro - certamente isso foi compensador, porque nesse caso o
 full-
scan ia ler muito mais blocos. Se fossem digamos 5 ou 10
 registros,
vc multiplicaria esse overhead do índice por 5 ou 10, tá
 crescendo,
mas ainda certamente vale mais a pena ir por índice. PORÉM,
 cfrme a
quntidade de registros a ler sobe mais e mais, esses bloquinhos
extras do índice pesam mais e mais, até chegar num ponto que
 compensa
mais já se ler diretamente a tabela via table-scan, o que
 inclusive
tem a vantagem de poder ser feito muito rapidamente, já que ao
contrário do índice, que é uma estrutura complexa (com
 vários tipos
de blocos) uma tabela é só ler aos pedações, não há o
 que analisar..
Aí vem a pergunta, que ponto é esse, onde começa a ser ruim
 acesso
por índice  ?? Há grande discórdia entre os autores e
 entendidos no
mundo Oracle, alguns falam que índice compensa só se vc for ler
 até
15% dos registros indexados, outros falam em 10% ou 20% ou 25%,
 na
verdade há alguma variação natural, mas com certeza 50% tá bem
 acima,
normalmente já começa  a valer a pena full-scan, então no teu
 exemplo
de tabela com 100 mil, onde metade (50 mil) é = 'A' e a outra
 metade
é 'B', certamente não deve valer a pena índice não. Já no outro
 caso
proposto, onde vc tem 20 mil e 80 mil, 20 mil representam 25% ,
 pode
sim valer a pena um índice aí
   
Quanto á b*tree ou bitmap, o ponto principal a favor do bitmap
 é que
ele permite operações de join de índices, tipo usar um pedaço
 de
cada índice numa busca,  e coisas do tipo, o que o b*tree não,
 isso é
excelente pros casos de várias tabelas indexadas serem joineadas
frequentemente, e o ponto contra é que ele indexa os nulos E ,
 quando
ocorre DML na tabela (ie, INSERT, UPDATE, DELETE) o lock é no
 bitmap
inteiro, outras sessões que estiverem tentando usar esse índice
sofre. VEJA, não é que ** qualquer ** UPDATE/INSERT/DELETE
 derrote a
idéia de bitmap, o problema aqui é a frequência (quntidade) e o
 fato
de houverem ou não outras sessões querendo usar ao mesmo tempo.
   
[]s
   
Chiappa
   
--- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro
 [EMAIL PROTECTED]
escreveu

 Muito Obrigado... Ótima

Re: [oracle_br] Re: BIND_ARRAY - PLS-00306

2005-12-07 Por tôpico Marcelo Cauduro
Pessoal, para quem ficou interessado na questão...
O meu objetivo era o seguinte, retornar um array de uma procedure...
 num parametro out da procedure... entretanto essa seria chamada
dinamicamento
Bem... usando o pacote DBMS_SQL eu infelizmente não consegui,contudo usar
o sql nativo por meio do execute immediate foi bastante facil e
trouxe resultados positivos...
a primeira coisa a ser feita é criar um nested table, você pode
cria-la com o comando

create or replace type ArrayTeste is table of number;

pronto, agora voce deve criar a procedure que sera chamada dinamicamente
e ira popular o array

create or replace procedure proc (a out ArrayTeste) is
begin
  a := ArrayTeste(1);
  a(1) := 10;
  a.extend;
  a(2) := 20;
end;

agora , a procedure que chamara qualquer procedure dinamicamente e obtera
como retorno uma nested table

CREATE OR REPLACE PROCEDURE runarray
   (proc IN VARCHAR2, outval IN OUT ArrayTeste)
IS
BEGIN
   outval := ArrayTeste(3);
   execute immediate 'begin ' || proc || ' (:a); end;' using out outval;
end;

agora é só testar:

declare
  a ArrayTeste;
begin
  runarray('proc', a);
  for i in a.first..a.last loop
dbms_output.put_line(a(i));
  end loop;
end;

Qualquer dúvida estou a disposição.



On 12/6/05, Marcelo Cauduro [EMAIL PROTECTED] wrote:

 Achei uma alternativa 
 http://asktom.oracle.com/pls/ask/f?p=4950:8:9598011493460807310::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:5289101303258
 ,...

 mas é interessante mencionar que o fato de não ter funciona bind_variable
 com varchar é que tem de se especificar o tamanho da variavel

 bind_variable(cursor,'nome',variavel,tamanho)

 Tks.


  On 12/6/05, Marcelo Cauduro [EMAIL PROTECTED] wrote:
 
  Marcio,
 
  Agradeço pelo email, mas é o seguinte, sei o que é o erro PLS-00306, mas
  não sei o porque ele esta acontecendo em meu teste.
 
  O que eu quero é simplesmente conseguir chamar um procedure
  dinamicamente pelo DBMS_SQL e obter o seu retonro, mas ao inves de
  retornar uma variavel por meio do BIND_VARIABLE, quero retornar um array.
  Entao eu tenho uma procedure:
  create or replace procedure proc (a out dbms_sql.number_table) is
  begin
a(1) := 10;
a(5) := 20;
  end;
  /
  que ira montar um array, dai eu tenho uma outra procedure que chama
  dinamicamente qualquer procedure e obtem seu retorno, o problema é que:
  quando eu retorno variaveis da certo, mas quando uso array da o erro
  mencionado,
  por exemplo se eu fizesse a seguinte procedure :
  e trocasse de bind_array para bind_variable e trocar tudo para numero...
  da certo...
  *
 
  create
  **or* *replace* *procedure* proc (a *out* *number*) *is*
  *begin*
  a := 1;
  *end*;
  /
 
  *CREATE* *OR* *REPLACE* *PROCEDURE* runarray
  (proc *IN* *VARCHAR2*, outval *IN* *OUT* *number*)
  *IS*
  cur *INTEGER* := DBMS_SQL.OPEN_CURSOR;
  fdbk *INTEGER* ;
  mytab *number*;
  *BEGIN*
  DBMS_SQL.PARSE
  (cur, 'BEGIN ' || proc || '(' || ':outparam ); END;',
  DBMS_SQL.NATIVE);
  DBMS_SQL.bind_variable(cur, 'outparam' , mytab);
  fdbk := DBMS_SQL. *EXECUTE* (cur);
  DBMS_SQL.VARIABLE_VALUE (cur, 'outparam', mytab);
  DBMS_SQL.CLOSE_CURSOR (cur);
  outval := mytab;
  *end*;
 
  *declare*
  a *VARCHAR2*(20);
  *begin*
  runarray('proc' , a);
  *end*;
 
  agora se eu usar varchar2 da outro erro...
 
 
  *
 
  create
  **or* *replace* *procedure* proc (a *out* *varchar2*) *is*
  *begin*
  a := '1';
  *end*;
  /
 
  *CREATE* *OR* *REPLACE* *PROCEDURE* runarray
  (proc *IN* *VARCHAR2*, outval *IN* *OUT* *varchar2*)
  *IS*
  cur *INTEGER *:= DBMS_SQL.OPEN_CURSOR;
  fdbk *INTEGER*;
  mytab *varchar2*(100);
  *BEGIN*
  DBMS_SQL.PARSE
  (cur, 'BEGIN ' || proc || '(' || ':outparam ); END;',
  DBMS_SQL.NATIVE);
  DBMS_SQL.bind_variable(cur, 'outparam', mytab);
  fdbk := DBMS_SQL.*EXECUTE* (cur);
  DBMS_SQL.VARIABLE_VALUE (cur, 'outparam', mytab);
  DBMS_SQL.CLOSE_CURSOR (cur);
  outval := mytab;
  *end*;
 
  *declare*
  a *VARCHAR2*( 20);
  *begin*
  runarray('proc' , a);
  *end*;
 
 
 
  eu nao consigo fazer um bind de um array ou varchar.
 
 
 
  On 12/6/05, Marcio Portes [EMAIL PROTECTED]  wrote:
  
   Marcelo,
  
   Quando eu enviei a pergunta qual era o objetivo, eu não dei
   seguimento na thread porque realmente não entendi o que voce está
   tentando fazer. E como o dia-a-dia é corrido, não há tempo
   para espremer perguntas que não são claras para mim.
  
   Se voce que saber por que do PLS-00306 é simples - MANUAL.
  
   PLS-00306 wrong number or types of arguments in call to 'string'
  
   Cause: This error occurs when the named subprogram call cannot be
   matched to any declaration for that subprogram name. The subprogram
   name might be misspelled, a parameter might have the wrong datatype,
   the declaration might be faulty, or the declaration might be placed
   incorrectly in the block structure. For example, this error occurs if
   the built-in square root function SQRT is called with a misspelled
   name or with a parameter of the wrong datatype

Re: [oracle_br] Re: BIND_ARRAY - PLS-00306

2005-12-07 Por tôpico Marcelo Cauduro
Essa foi a resposta que tive noutro forum...
http://dba.ipbhost.com/index.php?showtopic=3123
talvez realmente não seja possivel com o bind array


On 12/7/05, Marcelo Cauduro [EMAIL PROTECTED] wrote:

  Pessoal, para quem ficou interessado na questão...
 O meu objetivo era o seguinte, retornar um array de uma procedure...
  num parametro out da procedure... entretanto essa seria chamada
 dinamicamento
 Bem... usando o pacote DBMS_SQL eu infelizmente não consegui,contudo usar
 o sql nativo por meio do execute immediate foi bastante facil e
 trouxe resultados positivos...
 a primeira coisa a ser feita é criar um nested table, você pode
 cria-la com o comando

 create or replace type ArrayTeste is table of number;

 pronto, agora voce deve criar a procedure que sera chamada dinamicamente
 e ira popular o array

 create or replace procedure proc (a out ArrayTeste) is
 begin
   a := ArrayTeste(1);
   a(1) := 10;
   a.extend;
   a(2) := 20;
 end;

 agora , a procedure que chamara qualquer procedure dinamicamente e obtera
 como retorno uma nested table

 CREATE OR REPLACE PROCEDURE runarray
(proc IN VARCHAR2, outval IN OUT ArrayTeste)
 IS
 BEGIN
outval := ArrayTeste(3);
execute immediate 'begin ' || proc || ' (:a); end;' using out outval;
 end;

 agora é só testar:

 declare
   a ArrayTeste;
 begin
   runarray('proc', a);
   for i in a.first..a.last loop
 dbms_output.put_line(a(i));
   end loop;
 end;

 Qualquer dúvida estou a disposição.



  On 12/6/05, Marcelo Cauduro [EMAIL PROTECTED] wrote:
 
  Achei uma alternativa 
  http://asktom.oracle.com/pls/ask/f?p=4950:8:9598011493460807310::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:5289101303258
  ,...
 
  mas é interessante mencionar que o fato de não ter funciona
  bind_variable com varchar é que tem de se especificar o tamanho da variavel
 
  bind_variable(cursor,'nome',variavel,tamanho)
 
  Tks.
 
 
   On 12/6/05, Marcelo Cauduro [EMAIL PROTECTED]  wrote:
  
   Marcio,
  
   Agradeço pelo email, mas é o seguinte, sei o que é o erro PLS-00306,
   mas não sei o porque ele esta acontecendo em meu teste.
  
   O que eu quero é simplesmente conseguir chamar um procedure
   dinamicamente pelo DBMS_SQL e obter o seu retonro, mas ao inves de
   retornar uma variavel por meio do BIND_VARIABLE, quero retornar um array.
   Entao eu tenho uma procedure:
   create or replace procedure proc (a out dbms_sql.number_table) is
   begin
 a(1) := 10;
 a(5) := 20;
   end;
   /
   que ira montar um array, dai eu tenho uma outra procedure que chama
   dinamicamente qualquer procedure e obtem seu retorno, o problema é que:
   quando eu retorno variaveis da certo, mas quando uso array da o erro
   mencionado,
   por exemplo se eu fizesse a seguinte procedure :
   e trocasse de bind_array para bind_variable e trocar tudo para
   numero... da certo...
   *
  
   create
   **or* *replace* *procedure* proc (a *out* *number*) *is*
   *begin*
   a := 1;
   *end*;
   /
  
   *CREATE* *OR* *REPLACE* *PROCEDURE* runarray
   (proc *IN* *VARCHAR2*, outval *IN* *OUT* *number*)
   *IS*
   cur *INTEGER* := DBMS_SQL.OPEN_CURSOR;
   fdbk *INTEGER* ;
   mytab *number*;
   *BEGIN*
   DBMS_SQL.PARSE
   (cur, 'BEGIN ' || proc || '(' || ':outparam ); END;',
   DBMS_SQL.NATIVE);
   DBMS_SQL.bind_variable(cur, 'outparam' , mytab);
   fdbk := DBMS_SQL. *EXECUTE* (cur);
   DBMS_SQL.VARIABLE_VALUE (cur, 'outparam', mytab);
   DBMS_SQL.CLOSE_CURSOR (cur);
   outval := mytab;
   *end*;
  
   *declare*
   a *VARCHAR2*(20);
   *begin*
   runarray('proc' , a);
   *end*;
  
   agora se eu usar varchar2 da outro erro...
  
  
   *
  
   create
   **or* *replace* *procedure* proc (a *out* *varchar2*) *is*
   *begin*
   a := '1';
   *end* ;
   /
  
   *CREATE* *OR* *REPLACE* *PROCEDURE* runarray
   (proc *IN* *VARCHAR2*, outval *IN* *OUT* *varchar2*)
   *IS*
   cur *INTEGER *:= DBMS_SQL.OPEN_CURSOR;
   fdbk *INTEGER*;
   mytab *varchar2*(100);
   *BEGIN*
   DBMS_SQL.PARSE
   (cur, 'BEGIN ' || proc || '(' || ':outparam ); END;',
   DBMS_SQL.NATIVE);
   DBMS_SQL.bind_variable(cur, 'outparam', mytab);
   fdbk := DBMS_SQL.*EXECUTE* (cur);
   DBMS_SQL.VARIABLE_VALUE (cur, 'outparam' , mytab);
   DBMS_SQL.CLOSE_CURSOR (cur);
   outval := mytab;
   *end*;
  
   *declare*
   a *VARCHAR2*( 20);
   *begin*
   runarray('proc' , a);
   *end*;
  
  
  
   eu nao consigo fazer um bind de um array ou varchar.
  
  
  
   On 12/6/05, Marcio Portes [EMAIL PROTECTED]  wrote:
   
Marcelo,
   
Quando eu enviei a pergunta qual era o objetivo, eu não dei
seguimento na thread porque realmente não entendi o que voce está
tentando fazer. E como o dia-a-dia é corrido, não há tempo
para espremer perguntas que não são claras para mim.
   
Se voce que saber por que do PLS-00306 é simples - MANUAL.
   
PLS-00306 wrong number or types of arguments in call to 'string'
   
Cause: This error occurs when the named subprogram call cannot be
matched to any declaration

Re: [oracle_br] Re: BIND_ARRAY - PLS-00306

2005-12-06 Por tôpico Marcelo Cauduro
Alguem ? Estou precisando disso urgente... ja tentei postar em outro grupo
mas parece que ninguem sabe

On 12/5/05, Marcelo Cauduro [EMAIL PROTECTED] wrote:

 Alguem tem alguma idéia ?

 On 12/3/05, Marcelo Cauduro [EMAIL PROTECTED] wrote:
 
  Eu tenho uma procedure que dá o mesmo erro que essa, mas não sei o por
  quê,
 
  meu objetivo :
   eu tenho uma procedure que me retorna um array, só que essa procedure
  eh executada dinamicamente e ela pode retornar um array com 1 ou mais
  valores, quando dou o dbms_sql.bind_array passa, mas qndo dou o campo para
  executar o sql da erro
 
  a primeira procedure acima
 
  create or replace procedure proc (a out dbms_sql.number_table) is
  begin
a(1) := 10;
a(5) := 20;
  end;
 
  coloca valores num array
 
  a segunda
  CREATE OR REPLACE PROCEDURE runarray
 (proc IN VARCHAR2, outval IN OUT DBMS_SQL.NUMBER_TABLE)
  IS
 cur INTEGER := DBMS_SQL.OPEN_CURSOR;
 fdbk INTEGER;
 mytab DBMS_SQL.NUMBER_TABLE;
  BEGIN
 DBMS_SQL.PARSE
   (cur, 'BEGIN ' || proc || '(' || ':outparam ); END;',
DBMS_SQL.NATIVE);
 DBMS_SQL.BIND_ARRAY (cur, 'outparam', mytab);
 fdbk := DBMS_SQL.EXECUTE (cur);
 DBMS_SQL.VARIABLE_VALUE (cur, 'outparam', mytab);
 DBMS_SQL.CLOSE_CURSOR (cur);
 outval := mytab;
  end;
  /
  de uma procedure consegue obter o retorno dela, mas esse retorno pode
  ser um array, ...
 
 
 
 
  On 12/3/05, Marcio Portes [EMAIL PROTECTED]  wrote:
  
   Engenharia reversa demora muito! Qual seu objetivo aqui?
  
   --- Em oracle_br@yahoogrupos.com.br, marcelobcauduro
   [EMAIL PROTECTED] escreveu
Pessoal,
   
Eu estou tentando usar o bind array mas estou recebendo o erro PLS-
00306, o código é o abaixo :
   
create or replace procedure proc (a out dbms_sql.number_table) is
begin
  a(1) := 10;
  a(5) := 20;
end;
/
CREATE OR REPLACE PROCEDURE runarray
   (proc IN VARCHAR2, outval IN OUT DBMS_SQL.NUMBER_TABLE)
IS
   cur INTEGER := DBMS_SQL.OPEN_CURSOR;
   fdbk INTEGER;
   mytab DBMS_SQL.NUMBER_TABLE;
BEGIN
   DBMS_SQL.PARSE
 (cur, 'BEGIN ' || proc || '(' || ':outparam ); END;',
  DBMS_SQL.NATIVE);
   DBMS_SQL.BIND_ARRAY (cur, 'outparam', mytab);
   fdbk := DBMS_SQL.EXECUTE (cur);
   DBMS_SQL.VARIABLE_VALUE (cur, 'outparam', mytab);
   DBMS_SQL.CLOSE_CURSOR (cur);
   outval := mytab;
end;
/
declare
  a dbms_sql.number_table;
begin
  runarray('proc', a);
end;
/
   
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'PROC'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
   
Alguem sabe o por que ?
   
Muito OBrigado.
  
  
  
  
  
   --
   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
  
  
 *Yahoo! Grupos, um serviço oferecido por:*   PUBLICIDADE
  
   http://br.rd.yahoo.com/SIG=12f9pttir/M=365837.7000707.7924794.2369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1133637409/A=2950750/R=2/id=noscript/SIG=10tift5qr/*http://br.movies.yahoo.com/
   --
   *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]
  [EMAIL PROTECTED]
  
  - O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
  Serviço do Yahoo! http://br.yahoo.com/info/utos.html.
  
  
 



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



--
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

 




  1   2   >