[oracle_br] Re: Performance do ODA virtualizado

2019-02-12 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Blz ? Então , duas coisas aí : primeiro, antes de tudo, acredito que vc Saiba 
que vc pode fazer hard-partitioning de qulquer um dos muitos hardwares 
suportados pelo Oracle VM Server, não só com ODA, ok ?? A vantagem do ODA é que 
ele é um hardware bastante parrudo que já vem montado e pronto pra usar, 
excelente para Empresas que não possuem um departamento de TI experiente em 
hardware server-class, MAS sempre existe a possibilidade de montar um hardware 
tão bom quanto ou talvez até melhor se vc adquirir no mercado os componentes, 
de outros fornecedores que não a Oracle.
A segunda coisa é a sua resposta : colega, é ABSOLUTAMENTE IMPOSSÍVEL para nós, 
daqui de fora, que NÃO CONHECEMOS a sua Aplicação, NÃO CONHECEMOS as suas 
exigências de SLA, NÃO CONHECEMOS detalhes operacionais como tipificação da 
aplicação (se é BATCH ou Online), NÃO CONHECEMOS coisas como volume de dados, 
qualidade dos SQLs da aplicação e tantas mais, dizermos qualquer coisa que não 
seja CHUTE, sim sim sim 

==> A única maneira precisa para vc determinar se um hardware (ODA ou não) 
atende às suas exigências é fazer um BENCHMARK dele, ie, um teste o mais 
PRECISO possível, preferencialmente com uma instalação de testes da aplicação 
rodando dados fictícios mas Parecidos com os dados reais, e num volume e com 
uma qtdade de usuários não trivial, é isso... SE isso (que é a única maneira 
Exata e Precisa de prever performance) não for possível/viável por qquer 
motivo, aí teu plano B seria usar um software de benchmark / testes (como 
HammerORA em https://hammerora.soft112.com/, SLOB em 
https://kevinclosson.net/slob/, SwingBench em 
http://www.dominicgiles.com/swingbench.html, entre N outros) tanto no novo 
hardware quanto no hardware velho já existente e COMPARAR, ok ? E em alguns 
casos dá também pra CAPTURAR o processamento no banco velho rodando no hardware 
velho e depois RE-EXECUTAR eles no banco novo do hardware novo pra poder 
comparar as performances alcançadas, isso se faz com o Oracle Real Application 
Test, veja 
https://www.oracle.com/technetwork/database/options/real-application-testing-option-2355173.html
 para ref...

Blz ? Torno a repetir, seum algum TESTE real, vc e eu estaríamos CHUTANDO aqui, 
pode ser que acerte mas pode ser que não - isso Não É a maneira profissional e 
correta de avaliar um Sistema, creio

 []s
 
  Chiappa

[oracle_br] Re: Performance Oracle 9i

2015-11-18 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Opa, blz ? Então, imho é *** rigorosamente Impossível *** vc "pegar problemas 
de performance com query" - o que é possível é vc identificar SQLs 'caros', 
SQls custosos, que podem ou não ser foco de má performance, mas NÃO HÁ COMO vc 
identificar de maneira automática (seja via query ou qual for a maneira) se 
esses SQLs estão apresentando performance abaixo do possível ou se o gasto (de 
I/O, de CPU ou o que for) é normal para a tarefa... Pra ficar mais claro, tome 
o exemplo de um SQL que leia, sei lá, 10 mil blocos pra retornar meia dúzia de 
linhas : normalmente num caso desses neguim já ia sair gritando "tem problema! 
tem problema" mas suponha que é um SELECT com algum tipo de Agrupamento e que 
retorne as vendas todas do ano que estão na tabela - não adianta querer indexar 
(pois NECESSARIAMENTE a tabela toda tem que ser lida, e índice é eficiente 
quando se necessita ler MENOS que a totalidade dos dados) , não adianta 
particionar por mês/dia (já que queremos/precisamos TODOS os dados) aí não tem 
jeito, se a tabela tem 10 mil blocos o RDBMS  *** TEM ***  que ler todos eles 
pra atender à tarefa tal como proposta... Neste exemplo, por mais que esse SQL 
seja apontado na listagem não há RIGOROSAMENTE NADA que se possa fazer no SQL 
em si , para este caso a melhoria de performance passaria por estruturas 
físicas diferentes (views materializada que já faça o agrupamento num período 
fora de pico, talves) e/ou alteração da solicitação (digamos, alterar o 
relatório para MENSAL ao invés de ANUAL, com os relatórios dos meses anteriores 
(ou seus dados) sendo armazenados talvez fora do banco, coisas assim

  Assim sendo : nunca esquecendo essa ENORME RESSALVA acima exposta, ie, que o 
que vc vai obter são SUSPEITOS, que PODEM ou NÃO ser causa de problemas de 
performance, a resposta é : vc encontra as estatísticas de SQLs na V$SQL e na 
V$SQLAREA, vc vai fazer simples consultas nelas ordenando pelos |TOP-N 
(tipicamente se indica uns 25) resultados... 
 Um exemplinho rastaquera,indicando os top-25 SQLs mais demorados (em termos de 
tempo total) :

SELECT * FROM
(SELECT
sql_fulltext,
sql_id,
elapsed_time,
child_number,
disk_reads,
executions,
first_load_time,
last_load_time
   FROM v$sql
ORDER BY elapsed_time DESC)
WHERE ROWNUM < 26;


Com essa mesma lógica, vc pode encontrar os TOP-N SQLs que mais I/Os fizeram, 
os TOP-N SQLs que mais gastaram CPU, os TOP-N SQLs mais usados/executados no 
database... Bico...Dá um look na doc 9i para ver EXATAMENTE quais colunas vc 
tem na V$SQL e na V$SQLAREA e é isso...

Apenas aviso que :

 a. as V$ são TOTALMENTE APAGADAS após um reboot do database : se vc pára o 
banco para backups frios ou coisa assim, esteja preparado para isso, SALVANDO 
de alguma forma os conteúdos . SE fosse banco 10g vc já tem isso automático (na 
figura do AWR/ASH) mas no banco 9i não tem, no 9i ou vc pode usa o STATSPACK 
para fazer as consultas (quie aí ele já tem um local pra salva dos dados 
extraídos das V$) ou então vc cria uma rotina sua : 
http://datavirtualizer.com/ash-masters/33-2/ é um exemplo mas talvez no seu 
caso vc queira escrever uma rotina mais simples que só salve as V$SQLxxx, ao 
invés dos WAITs

 b. as V$SQLxxx refletem o CACHE de SQLs, ie, elas mostram APENAS e TÃO SOMENTE 
os SQLs que estão atualmente no cache : para que vc não perca aqueles SQLs 
infrequentes mas importantes  pro negócio e/ou pra análise de performance, vc 
TEM que repetir as consultas nelas  várias e várias vezes , com intervalos ente 
cada consulta, por dias e dias (ou mesmo semanas) a fio... 

[]s


  Chiappa

[oracle_br] Re: performance em função

2014-12-23 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Opa, pra começo de conversa PL/SQL sendo chamado de dentro de um comando SQL é 
quase sempre uma  Péssima *** idéia : pesquisa em asktom.oracle.com que vc 
vai encontrar artigos faklando sobre as issues que vc pode/vai encontrar, como 
por exemplo context switch (já que isso força o RDBMS a ficar pulando entre 
os engibes de SQL e de PL/SQL, o que consome SIM cpu : 
https://asktom.oracle.com/pls/apex/f?p=100:11:0P11_QUESTION_ID:5173758137186#20839207575486
 é um dos exemplos que vc vai encontrar), OU então o fato Inescapável de que se 
vc está passando valores presentes em linhas de uma tabela pra rotina PL/SQL, 
vc LOGICAMENTE vai ter que executar a rotina PL/SQL uma vez para cada valor 
possível diferente. Essa última questão pode ser mitigada no banco 11g com 
o CACHE DE RESULTADOS (veja 
oracle-base.com/articles/misc/efficient-function-calls-from-sql.php e 
http://www.oracle.com/technetwork/issue-archive/2011/11-sep/o51asktom-453438.html
 para exemplos), mas o IDEAL é fugir desses custos...

Isso posto, se vc REALMENTE, ABSOLUTAMENTE, TEM QUE chamar a rotina PL/SQL de 
dentro do SQL,  pra gente poder responder melhor plz nos diga :

 a) a função está sendo usada só na cláusula de SELECT da query, ** OU ** está 
sendo referenciada no WHERE, no ORDER BY e/ou em outros pontos ?? Se não é só 
no SELECT, vc tem *** ENORMES *** chances da função estar causando mudanças 
negativas no Plano de Execução : por exemplo, a função está alterando uma 
coluna indexada, ou - já que OBVIAMENTE o CBO não consegue saber qual valor a 
função retorna, então não tem como usar nem Histogramas nem as estatísticas de 
que ele dispõe - o CBO não consegue Otimizar o plano, por aí...
 
 b) a função que vc está chamando tem a ver com as built-ins de XML ? Se sim, 
CONFIRA as correções presents nos patchsets 11.2.0.3 e 11.2.0.4, pois bugs como 
o 9919654 tipicamente tendem a se fazxer presentes com funções XML, que por 
natureza são complexas (tendem a fazer montes de SUBSTR/INSTR) e recursivas
 
 c) a tal função faz processamento ** pesado ** de strings, tipo expressões 
regulares ?? Se sim, cfrme 
https://asktom.oracle.com/pls/apex/f?p=100:11:0P11_QUESTION_ID:6071446400346871004#608340346455747
 alerta, vc VAI SIM encontrar um overhead ao utilizar as built-ins de regex ao 
invés das funções primitivas de string do PL/SQL
 
 == Sobre debug : o primeiro e óbvio passo é testar a tal query ** SEM ** a 
função, depois testar com uma função dummy (ie, que só faça um comando simples, 
tipo um NOP, ou uma adição se o valor for numérico, ou seja, alguma coisa 
mínima, só pra testar) 
   SE os testes acima retornaram o mesmo plano de execução mas consumiram muito 
menos CPU, vc já Provou que é a rotina em si que não está Otimizada ao máximo, 
é partir pro TUNING dela, ou então (o Melhor, como dito no início) substituir a 
rotina PL/SQL por built-ins SQL...
   
[]s

   Chiappa

RES: [oracle_br] Re: performance em função

2014-12-23 Por tôpico 'Grupos' marcio_...@yahoo.com.br [oracle_br]
A função não faz consulta a dados nenhum, são passados alguns parâmetros e de 
acordo ele retorna o resultado, dentro da função é apenas algumas validações de 
strings.

 

Já eu executando essa função direto no banco, SQL Developer, o retorno é em 
milissegundos.

 

A consulta está vindo de uma aplicação Web criada em cima de um IIS.

 

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] 
Enviada em: terça-feira, 23 de dezembro de 2014 14:17
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: performance em função

 

  

Opa, pra começo de conversa PL/SQL sendo chamado de dentro de um comando SQL é 
quase sempre uma  Péssima *** idéia : pesquisa em asktom.oracle.com que vc 
vai encontrar artigos faklando sobre as issues que vc pode/vai encontrar, como 
por exemplo context switch (já que isso força o RDBMS a ficar pulando entre 
os engibes de SQL e de PL/SQL, o que consome SIM cpu : 
https://asktom.oracle.com/pls/apex/f?p=100:11:0P11_QUESTION_ID:5173758137186#20839207575486
 é um dos exemplos que vc vai encontrar), OU então o fato Inescapável de que se 
vc está passando valores presentes em linhas de uma tabela pra rotina PL/SQL, 
vc LOGICAMENTE vai ter que executar a rotina PL/SQL uma vez para cada valor 
possível diferente. Essa última questão pode ser mitigada no banco 11g com 
o CACHE DE RESULTADOS (veja 
oracle-base.com/articles/misc/efficient-function-calls-from-sql.php e 
http://www.oracle.com/technetwork/issue-archive/2011/11-sep/o51asktom-453438.html
 para exemplos), mas o IDEAL é fugir desses custos...

Isso posto, se vc REALMENTE, ABSOLUTAMENTE, TEM QUE chamar a rotina PL/SQL de 
dentro do SQL,  pra gente poder responder melhor plz nos diga :

 a) a função está sendo usada só na cláusula de SELECT da query, ** OU ** está 
sendo referenciada no WHERE, no ORDER BY e/ou em outros pontos ?? Se não é só 
no SELECT, vc tem *** ENORMES *** chances da função estar causando mudanças 
negativas no Plano de Execução : por exemplo, a função está alterando uma 
coluna indexada, ou - já que OBVIAMENTE o CBO não consegue saber qual valor a 
função retorna, então não tem como usar nem Histogramas nem as estatísticas de 
que ele dispõe - o CBO não consegue Otimizar o plano, por aí...
 
 b) a função que vc está chamando tem a ver com as built-ins de XML ? Se sim, 
CONFIRA as correções presents nos patchsets 11.2.0.3 e 11.2.0.4, pois bugs como 
o 9919654 tipicamente tendem a se fazxer presentes com funções XML, que por 
natureza são complexas (tendem a fazer montes de SUBSTR/INSTR) e recursivas
 
 c) a tal função faz processamento ** pesado ** de strings, tipo expressões 
regulares ?? Se sim, cfrme 
https://asktom.oracle.com/pls/apex/f?p=100:11:0P11_QUESTION_ID:6071446400346871004#608340346455747
 alerta, vc VAI SIM encontrar um overhead ao utilizar as built-ins de regex ao 
invés das funções primitivas de string do PL/SQL
 
 == Sobre debug : o primeiro e óbvio passo é testar a tal query ** SEM ** a 
função, depois testar com uma função dummy (ie, que só faça um comando simples, 
tipo um NOP, ou uma adição se o valor for numérico, ou seja, alguma coisa 
mínima, só pra testar) 
   SE os testes acima retornaram o mesmo plano de execução mas consumiram muito 
menos CPU, vc já Provou que é a rotina em si que não está Otimizada ao máximo, 
é partir pro TUNING dela, ou então (o Melhor, como dito no início) substituir a 
rotina PL/SQL por built-ins SQL...
   
[]s

   Chiappa





Re: RES: [oracle_br] Re: performance em função

2014-12-23 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Colega, vc ** não respondeu ** o que eu perguntei : a função é usada no SELECT, 
no WHERE, no ORDER BY, em QUAL lugar ?? o Plano de execução sem a dita-cuja é 
diferente ?? A tal validação usa regexp, XML ou quetais ?? PO estar 
acontecendo o caso de que a função em si roda em menos de um segundo mas está 
sendo aplicada em não-sei-quantas centenas de milhares de linhas e assim 
PORTANTO está levando DEZENAS de milhares de segundos na soma total ?? Vc FEZ 
um teste da query fazendo a tal validação de strings em SQL puro, assim 
EVITANDO context-switch e cia bela ?? Plz detalhes

 []s
 
   Chiappa

RES: RES: [oracle_br] Re: performance em função

2014-12-23 Por tôpico 'Grupos' marcio_...@yahoo.com.br [oracle_br]
Chiappa,

 

Segundo o fornecedor a consulta é simples, sem ordenação, sem where e sem join, 
é o que tenho de detalhes sobre a sua utilização. Gerei um trace de uma sessão 
agora, e me chamou a atenção o evento MUTEX X:

 

call count   cpuelapsed   disk  querycurrentrows

--- --   -- -- -- --  --

Parse0  0.00   0.00  0  0  0   0

Execute 256680 21.98  80.68  0  0  0   0

Fetch   256679  7.01 271.58  0  0  0  256679

--- --   -- -- -- --  --

total   513359 28.99 352.27  0  0  0  256679

 

Misses in library cache during parse: 0

Optimizer mode: ALL_ROWS

Parsing user id: 27 (recursive depth: 1)

 

Elapsed times include waiting on following events:

  Event waited on Times   Max. Wait  Total Waited

     Waited  --  

  library cache: mutex X   27403.97470.98

  cursor: pin S  421.44  7.58

  latch free  10.00  0.00

 

 

 



 

OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS

 

call count   cpuelapsed   disk  querycurrentrows

--- --   -- -- -- --  --

Parse0  0.00   0.00  0  0  0   0

Execute  0  0.00   0.00  0  0  0   0

Fetch0  0.00   0.00  0  0  0   0

--- --   -- -- -- --  --

total0  0.00   0.00  0  0  0   0

 

Misses in library cache during parse: 0

 

Elapsed times include waiting on following events:

  Event waited on Times   Max. Wait  Total Waited

     Waited  --  

  asynch descriptor resize 19700.00  0.00

  latch: row cache objects  1110.54  5.11

  buffer busy waits  240.65  1.55

  latch: cache buffers chains   1290.65 10.11

  latch free  40.35  0.63

  wait list latch free20.03  0.04

 

 

OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS

 

call count   cpuelapsed   disk  querycurrentrows

--- --   -- -- -- --  --

Parse0  0.00   0.00  0  0  0   0

Execute 256680 21.98  80.68  0  0  0   0

Fetch   256679  7.01 271.58  0  0  0  256679

--- --   -- -- -- --  --

total   513359 28.99 352.27  0  0  0  256679

 

Misses in library cache during parse: 0

 

Elapsed times include waiting on following events:

 Event waited on Times   Max. Wait  Total Waited

     Waited  --  

  library cache: mutex X   27403.97470.98

  cursor: pin S  421.44  7.58

  latch free  10.00  0.00

 

 

Não tenho muitos detalhes do funcionamento interno dessa função na aplicação, 
resumidamente foi o que te passei, passa-se uns parâmetros e ele retorna uma 
string, não tem consulta a nenhuma tabela dentro da função.

 

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] 
Enviada em: terça-feira, 23 de dezembro de 2014 15:12
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: RES: [oracle_br] Re: performance em função

 

  

Colega, vc ** não respondeu ** o que eu perguntei : a função é usada no SELECT, 
no WHERE, no ORDER BY, em QUAL lugar ?? o Plano de execução sem a dita-cuja é 
diferente ?? A tal validação usa regexp, XML ou quetais ?? PO estar 
acontecendo o caso de que a função em si roda em menos de um segundo mas está 
sendo aplicada em não-sei-quantas centenas de milhares de linhas e assim 
PORTANTO está levando DEZENAS de milhares de segundos na soma total ?? Vc FEZ 
um teste da query fazendo a tal validação de strings em SQL puro, assim 
EVITANDO context-switch e cia bela ?? Plz detalhes

 []s
 
   Chiappa





[oracle_br] Re: Performance pacotes dbms ????

2014-10-22 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Bom, primeiro observo que o seu títyulo foi Bem ruinzinho : performance pacote 
dbms parece indicar que é um problerma de performance na execução de algum 
pacote DBMS, o que não é o caso...
 Mas de qquer maneira : primeiro coisa, ** ao invés ** de sair disparando feito 
um louco pra todo o lado, coletando estatísticas, alterando armazenamento 
físico e n outras coisas de uma vez só como vc fez, o que se recomenda num 
processo de tuning é primeiro tentar IDENTIFICAR o problema (via trace, 
debug/instrumentação, detecção de alteração nos planos de execução, consulta de 
WAITS - de repente não é NADA disso o seu problema, pode ser talvez wait for 
locks, sei lá), e só DEPOIS de identificado , aí sim tentar fazer UMA COISA por 
vez, e sempre comprovando que essa uma única coisa foi efetiva (obtendo os 
planos, as métricas de I/O, o que for) de ANTES e de DEPOIS da alteração... Sim 
??? Senão acontece que nem no seu caso, será que foi a coleta de estatísticas 
OU foi o SHRINK que tinha melhorado a performance ??? Vc Não segui a 
metodologia, então QUEM SABE ? Sacou ???

 Segundo ponto : supondo que mudança de planos de execução/estatísticas ruins 
fossem o problema (a gente não sabe, mas supondo que) absolutamente não entendi 
o que vc fez com as estatísticas, pois SE vc já tinha coletado as estatísticas 
das tabelas via DBMS_STATS.GATHER_TABLE_STATS, por que RAIOS vc ainda por cima 
executou um DBMS_STATS.GATHER_SCHEMA_STATS  Fez 2x a mesma coisa ??? Não 
entendi

 Adicionalmente, SE vc obtiver alguma prova de que é o armazenamento físico o 
culpado :

  a. analise e descubra a EXATA e REAL causa do problema : ao invés de usar a 
palavra guarda-chuva FRAGMENTAÇÃO, que engloba tudo mas não diz nada, plz 
Descubra se o problema é por causa de extent size enormemente grande e vazio, 
espaço na HWM não sendo reaproveitado por causa de INSERT /*+ APPEND */, 
white-space (ie, espaço não reaproveitado no momento) dentro do bloco (seja por 
cláusulas de storage inapropriadas ou o que for) , enfim, o REAL aí

  b. saiba que SHRINK serve para ** temporariamente **, neste exato momento 
apenas, desalocar armazenamento que está alocado para um segmento : ele *** NÃO 
 garante que poucas horas depois da sua execução já houveram mais cargas de 
dados que (por uma das causas que vc detectou em a), acima) fizeram o sgmento 
ficar com um armazenamento ruim, yep ??

  == Então a minha Resposta é essa : plz vc (ou alguém Habilitado, se vc não 
tiver o conhecimento para tal) deve Analisar, levantar exatamente os números da 
lentidão, Descobrir exatamente qual a Causa para aí sim poder Atuar sem ser 
via chute, via DPTLEVSACF 
(disparar-para-todo-lado-e-ver-se-alguma-coisa-funciona )...

  []s

   Chiappa

[oracle_br] Re: Performance

2014-10-15 Por tôpico jlchia...@yahoo.com.br [oracle_br]
  Tudo jóia ? Então, o certo seria a Aplicação dispor de INSTRUMENTAÇÃO, isto 
é, de um modo de debug que vc ativaria e aí obteria um report de cada passo que 
está sendo executado e quanto está demorando, JUSTAMENTE para vc poder 
identificar aonde que está a demora Não preciso dizer, porém, que em 
99,999% das Aplicações (em nome da agilidade, dizem alguns) são feitas é nas 
coxas mesmo, de qquer jeito e sem planejamento, visando mesmo é o menor custo e 
o mais curto prazo de entrega, assim as primeiras coisas cortadas são 
justamente as impreteríveis , ie, a DOCUMENTAÇÃO e a INSTRUMENTAÇÃO...
 Não havendo instrumentação nativa : caso a aplicação seja desenvolvida 
in-house e vc tenha os fontes e a possibilidade de a alterar, a Recomendação 
seria vc implementar uma instrumentação, nem que seja algo muito simples, tipo :

imprimir mensagem ('Vou fazer o select das NFs em' || data e hora);
SELECT .
imprimir mensagem ('Feito SELECT em ' || data e hora);
...

negócio bem básico e rastaquera, mas que já te daria a info...

 CASO não seja possível implementar nada de nada, aí o recurso seria vc ativar 
o TRACE no banco de dados : isso vai te gerar um arquivo de trace com a relação 
completa  dos comandos executados e o tempo gasto (bem como o Plano de Execução 
dos SQLs), aí com isso vc saberá se o culpado é algum SQL ruim, se é latch (ie, 
muitas pessoas acessando as mesmas tabelas ao mesmo tempo tendo que esperarem 
pela liberação do latch de acesso), espera por LOCK (já vi sistemas doidos 
aonde assim que o usuário inicia uma sessão de uso no sistema o aplicativo 
insere/updateia registros em tabelas de controles, aí se por qquer motivo 
múltiplas pessoas iniciarem ao mesmo tempo há espera por lock), se é a rede que 
está sobrecarregada ao transmitir os dados para o cliente (às vezes o banco em 
si está perfeito mas a rede é que tá enfrentando pico de uso - vc ** NÂO ** 
pode dizer de bate-pronto que a lentidão está sendo causada por seu banco), ou 
o que for...  Dá um look na Documentação, e para mais refs vc pode usar 
http://www.oracle-base.com/articles/misc/sql-trace-10046-trcsess-and-tkprof.php 
para trace de sessão dedicada, e 
http://www.dbspecialists.com/files/presentations/tracing_ind_sessions.html para 
os casos mais difíceis aonde a conexão ao banco não seja direta, havendo algum 
tipo de pool de conexões em que uma sessão no banco atende N solicitações 
diferentes de usuários diferentes...

  []s

Chiappa

Re: [oracle_br] Re: Performance

2014-10-15 Por tôpico Andre Santos andre.psantos...@gmail.com [oracle_br]
Gustavo

Para investigar o que ocorre na aplicação, num determinado processo, gosto
de usar trace/tkprof mesmo.
O Chiappa indicou duas referências muito boas!
Só enfatizo que, ao gerar o trace, é muito útil colocar as opções de
WAITS=true.
Desse modo você terá detalhes dos eventos de espera (tempos) dos processo.

[ ]'s

André Santos


Em 15 de outubro de 2014 11:20, jlchia...@yahoo.com.br [oracle_br] 
oracle_br@yahoogrupos.com.br escreveu:



   Tudo jóia ? Então, o certo seria a Aplicação dispor de INSTRUMENTAÇÃO,
 isto é, de um modo de debug que vc ativaria e aí obteria um report de cada
 passo que está sendo executado e quanto está demorando, JUSTAMENTE para vc
 poder identificar aonde que está a demora Não preciso dizer, porém, que
 em 99,999% das Aplicações (em nome da agilidade, dizem alguns) são feitas
 é nas coxas mesmo, de qquer jeito e sem planejamento, visando mesmo é o
 menor custo e o mais curto prazo de entrega, assim as primeiras coisas
 cortadas são justamente as impreteríveis , ie, a DOCUMENTAÇÃO e a
 INSTRUMENTAÇÃO...
  Não havendo instrumentação nativa : caso a aplicação seja desenvolvida
 in-house e vc tenha os fontes e a possibilidade de a alterar, a
 Recomendação seria vc implementar uma instrumentação, nem que seja algo
 muito simples, tipo :

 imprimir mensagem ('Vou fazer o select das NFs em' || data e hora);
 SELECT .
 imprimir mensagem ('Feito SELECT em ' || data e hora);
 ...

 negócio bem básico e rastaquera, mas que já te daria a info...

  CASO não seja possível implementar nada de nada, aí o recurso seria vc
 ativar o TRACE no banco de dados : isso vai te gerar um arquivo de trace
 com a relação completa  dos comandos executados e o tempo gasto (bem como o
 Plano de Execução dos SQLs), aí com isso vc saberá se o culpado é algum SQL
 ruim, se é latch (ie, muitas pessoas acessando as mesmas tabelas ao mesmo
 tempo tendo que esperarem pela liberação do latch de acesso), espera por
 LOCK (já vi sistemas doidos aonde assim que o usuário inicia uma sessão de
 uso no sistema o aplicativo insere/updateia registros em tabelas de
 controles, aí se por qquer motivo múltiplas pessoas iniciarem ao mesmo
 tempo há espera por lock), se é a rede que está sobrecarregada ao
 transmitir os dados para o cliente (às vezes o banco em si está perfeito
 mas a rede é que tá enfrentando pico de uso - vc ** NÂO ** pode dizer de
 bate-pronto que a lentidão está sendo causada por seu banco), ou o que
 for...  Dá um look na Documentação, e para mais refs vc pode usar
 http://www.oracle-base.com/articles/misc/sql-trace-10046-trcsess-and-tkprof.php
 para trace de sessão dedicada, e
 http://www.dbspecialists.com/files/presentations/tracing_ind_sessions.html
 para os casos mais difíceis aonde a conexão ao banco não seja direta,
 havendo algum tipo de pool de conexões em que uma sessão no banco atende N
 solicitações diferentes de usuários diferentes...

   []s

 Chiappa
  



[oracle_br] Re: Performance da maquina irá depender do tamanho do datafile ?

2013-08-26 Por tôpico J. Laurindo Chiappa
  Tudo jóia, Rafael ?? Então, na verdade NÂO É o fato de vc abrir o arquivão 
grandão que degrada, MAS SIM quando vc abre E LÊ / CARREGA PARA A MEMÓRIA o 
arquivo, sim ??? Abrir apenas absolutamente ** Não ** gasta recursos 
apreciáveis, é só um file handle que foi usado, não se consumiu RAM, CPU, I/O 
ou rede quase nenhum... Faça uma experiência : crie um arquivo gigantesco na 
sua máquina de testes, meça a performance da máquina com os utilitários de So 
que vc tenha, depois faça um programinha numa linguagem de programação que 
domine e permita abrir arquivos (pode ser Java, C, .NET, VB, a que quiser e 
conhecer) que abra esse arquivo (SEM o ler, apenas o abra) e fique em pausa , 
aí noutra janela meça de novo a performance da máquina, vc vai ver que está 
praticamente IDÊNTICA...
  É justamente esse o ponto aonde a sua analogia cai pela base , é que o RDBMS 
Oracle  nunca  lê um datafile inteiro, do começo ao fim, okdoc ? Por 
que ?? Vamos ver... 

 == Primeiramente, ESSA é a principal diferença do RDBMS para o editor de 
texto : enquanto o editor de texto é Obrigado a ler o arquivo inteiro (ou uma 
porção considerável dele), o RDBMS é um pouquinho mais esperto : ele divide o 
datafile em pequenos pedaços de mesmo tamanho (o chamado BLOCO), e em cada 
linha de cada tabela ele registra em qual bloco a linha está armazenada - 
assim, se ele precisar recuperar a linha X que está, digamos, no bloco 5000 do 
datafile, ele *** NÂO VAI ** ler do bloco 1 até o 5000 - como ele SABE o 
tamanho do bloco (digamos que seja bloco de 8kb), se a informação está no bloco 
5000 ele faz uma continha de 5000 * 8 kb = 4096, aí ele pede para ler 
apenas essa posição do arquivo, yep ??? Esse tipo de operação, posicionando o 
leitor numa dada posição do arquivo e assim evitando varredura a partir do 
início se chama FILE SEEK (frequentemente abreviada por FSEEK, ou similares), e 
existe em praticamente todas as linguagens de programação modernas, mas 
principalmente existe na linguagem C, na qual o RDBMS Oracle foi escrito... 

  E quando não sabemos qual linha contém a informação desejada (ou então 
queremos agrupar/processar MÚLTIPLAS linhas da tabela), e portanto não sabemos 
quais blocos são necessários, o que livra o RDBMS de ler o arquivo todo, bloco 
a bloco ??? O seguinte conceito : quando o RDBMS precisa de espaço para gravar 
dados, ele não aloca um só bloco, mas sim TODO um conjunto de blocos (de 
tamanho variável) chamado EXTENT, e o bloco de início de cada extent fica 
armazenado no database - assim, para a tabela X o RDBMS  *** SABE *** que o 
primeiro extent começo no bloco tal, PORTANTO obviamente os n blocos anteriores 
Não precisam ser lidos, a partir do incício do arquvi, sim  Esquece isso, 
esse negócio de ler arquivo do início é coisa para editor de texto, não para 
RDBMS 

  Jóia ??  OBVIAMENTE por questão de didática eu falei aqui de modo geral, há 
DIVERSOS detalhes importantes que vc VAi captar no manual de Concepts do 
database, mas creio que o que eu falei já dá pra ter uma noção de porque o 
tamanho do arquivo em si é irrelevante para a performance... Até se vc pensar 
friamente um pouco a respeito, outras posições equivocadas sobre performance 
(como por exemplo separar tabelas x índices em datafiles diferentes) com os 
conceitos que expus caem por terra : SE o RDBMS ** nunca ** lê um datafile do 
início ao fim, sempre pulando para o bloco desejado OU no mínimo para o bloco 
aonde o extent se inicia, que diferença para a performance pode haver se os 
índices estão no mesmo arquivo/datafile que os dados (num único enorme arquivão 
gigante) ??? Bem pouca, Né ?

   []s

Chiappa

 OBS : só para constar, o tamanho do arquivo pode ser ** crucial ** por 
questões Administrativas, não para performance - por exemplo, em caso de crash, 
quanto maior o arquivo mais tempo ele leva para ser voltado do backup, né ?? Ou 
ainda , os eventuais limites  : de repente o teu hardware, ou qquer componente 
do teu software relaionado a discos (ou mesmo o teu SO, porque não ?) TEm um 
limite de X gigabytes para um único arquivo, de repente vc pode acabar com 
corrupção/erros se deixar o datafile chegar nesse ponto... 
   Coisas assim, ADMINISTRATIVAS,  são aonde o tamanho do datafile importa...

--- Em oracle_br@yahoogrupos.com.br, Rafael Stoever rstoever@... escreveu

 Boa tarde a todos,
 
  Irei fazer uma analogia sobre um arquivo texto de 10GB e um datafile
 de 10GB e um de 32GB.
  Se efetuarmos a abertura do arquivo de 10GB no sistema operacional
 teremos um problema grande de memoria, podendo ate travar o sistema
 operacional.
 
 Agora a questão são os datafiles grandes 32GB quando abertos pelo
 Oracle para efetuar uma busca muito massiva de dados, ou mesmo somente
 abrir-los, ele poderá ocasionar um problema de performance da mesma forma
 que o editor de texto ?
 Pois ao checar os arquivos abertos pelo Oracle ele fica com o alguns
 datafiles abertos.
 
 Pergunta: O tamanho do 

[oracle_br] Re: Performance da maquina irá depender do tamanho do datafile ?

2013-08-26 Por tôpico J. Laurindo Chiappa
   E é claro , isso que eu disse da comparação de performance entre um arquivo 
gigante de tamanho X gigabytes ou N arquivinhos de tamanho menor que somem X 
gigabytes no total ser indiferente só vale ** SE ** estamos comparando ambos os 
casos sendo servidos pelo mesmo exato hardware de I/O - é CLARO que se vc tiver 
um arquivo A residente num único disco versus os n arquivinhos espalhados em 
vários discos, aí É CLARO que daria diferença

  []s

   Chiappa

--- Em oracle_br@yahoogrupos.com.br, J. Laurindo Chiappa jlchiappa@... 
escreveu

   Tudo jóia, Rafael ?? Então, na verdade NÂO É o fato de vc abrir o arquivão 
 grandão que degrada, MAS SIM quando vc abre E LÊ / CARREGA PARA A MEMÓRIA o 
 arquivo, sim ??? Abrir apenas absolutamente ** Não ** gasta recursos 
 apreciáveis, é só um file handle que foi usado, não se consumiu RAM, CPU, I/O 
 ou rede quase nenhum... Faça uma experiência : crie um arquivo gigantesco na 
 sua máquina de testes, meça a performance da máquina com os utilitários de So 
 que vc tenha, depois faça um programinha numa linguagem de programação que 
 domine e permita abrir arquivos (pode ser Java, C, .NET, VB, a que quiser e 
 conhecer) que abra esse arquivo (SEM o ler, apenas o abra) e fique em pausa , 
 aí noutra janela meça de novo a performance da máquina, vc vai ver que está 
 praticamente IDÊNTICA...
   É justamente esse o ponto aonde a sua analogia cai pela base , é que o 
 RDBMS Oracle  nunca  lê um datafile inteiro, do começo ao fim, okdoc 
 ? Por que ?? Vamos ver... 
 
  == Primeiramente, ESSA é a principal diferença do RDBMS para o editor de 
 texto : enquanto o editor de texto é Obrigado a ler o arquivo inteiro (ou uma 
 porção considerável dele), o RDBMS é um pouquinho mais esperto : ele divide o 
 datafile em pequenos pedaços de mesmo tamanho (o chamado BLOCO), e em cada 
 linha de cada tabela ele registra em qual bloco a linha está armazenada - 
 assim, se ele precisar recuperar a linha X que está, digamos, no bloco 5000 
 do datafile, ele *** NÂO VAI ** ler do bloco 1 até o 5000 - como ele SABE o 
 tamanho do bloco (digamos que seja bloco de 8kb), se a informação está no 
 bloco 5000 ele faz uma continha de 5000 * 8 kb = 4096, aí ele pede para 
 ler apenas essa posição do arquivo, yep ??? Esse tipo de operação, 
 posicionando o leitor numa dada posição do arquivo e assim evitando varredura 
 a partir do início se chama FILE SEEK (frequentemente abreviada por FSEEK, ou 
 similares), e existe em praticamente todas as linguagens de programação 
 modernas, mas principalmente existe na linguagem C, na qual o RDBMS Oracle 
 foi escrito... 
 
   E quando não sabemos qual linha contém a informação desejada (ou então 
 queremos agrupar/processar MÚLTIPLAS linhas da tabela), e portanto não 
 sabemos quais blocos são necessários, o que livra o RDBMS de ler o arquivo 
 todo, bloco a bloco ??? O seguinte conceito : quando o RDBMS precisa de 
 espaço para gravar dados, ele não aloca um só bloco, mas sim TODO um conjunto 
 de blocos (de tamanho variável) chamado EXTENT, e o bloco de início de cada 
 extent fica armazenado no database - assim, para a tabela X o RDBMS  *** SABE 
 *** que o primeiro extent começo no bloco tal, PORTANTO obviamente os n 
 blocos anteriores Não precisam ser lidos, a partir do incício do arquvi, sim 
  Esquece isso, esse negócio de ler arquivo do início é coisa para editor 
 de texto, não para RDBMS 
 
   Jóia ??  OBVIAMENTE por questão de didática eu falei aqui de modo geral, há 
 DIVERSOS detalhes importantes que vc VAi captar no manual de Concepts do 
 database, mas creio que o que eu falei já dá pra ter uma noção de porque o 
 tamanho do arquivo em si é irrelevante para a performance... Até se vc pensar 
 friamente um pouco a respeito, outras posições equivocadas sobre performance 
 (como por exemplo separar tabelas x índices em datafiles diferentes) com os 
 conceitos que expus caem por terra : SE o RDBMS ** nunca ** lê um datafile do 
 início ao fim, sempre pulando para o bloco desejado OU no mínimo para o 
 bloco aonde o extent se inicia, que diferença para a performance pode haver 
 se os índices estão no mesmo arquivo/datafile que os dados (num único enorme 
 arquivão gigante) ??? Bem pouca, Né ?
 
[]s
 
 Chiappa
 
  OBS : só para constar, o tamanho do arquivo pode ser ** crucial ** por 
 questões Administrativas, não para performance - por exemplo, em caso de 
 crash, quanto maior o arquivo mais tempo ele leva para ser voltado do backup, 
 né ?? Ou ainda , os eventuais limites  : de repente o teu hardware, ou qquer 
 componente do teu software relaionado a discos (ou mesmo o teu SO, porque não 
 ?) TEm um limite de X gigabytes para um único arquivo, de repente vc pode 
 acabar com corrupção/erros se deixar o datafile chegar nesse ponto... 
Coisas assim, ADMINISTRATIVAS,  são aonde o tamanho do datafile importa...
 
 --- Em oracle_br@yahoogrupos.com.br, Rafael Stoever rstoever@ escreveu
 
  Boa tarde a todos,
 

Re: [oracle_br] Re: Performance da maquina irá depender do tamanho do datafile ?

2013-08-26 Por tôpico Rafael Stoever
Obrigado Milton e Chiappa, ótimas explicações e bem compreendido !

Att
Rafael Stoever

abs
Rafael Stoever / @rstoever
DBA Oracle OCP/OCE/OPN Specialist 10g/11g
skype: rstoever



Em 26 de agosto de 2013 17:44, J. Laurindo Chiappa
jlchia...@yahoo.com.brescreveu:

 **


 E é claro , isso que eu disse da comparação de performance entre um
 arquivo gigante de tamanho X gigabytes ou N arquivinhos de tamanho menor
 que somem X gigabytes no total ser indiferente só vale ** SE ** estamos
 comparando ambos os casos sendo servidos pelo mesmo exato hardware de I/O -
 é CLARO que se vc tiver um arquivo A residente num único disco versus os n
 arquivinhos espalhados em vários discos, aí É CLARO que daria diferença

 []s

 Chiappa

 --- Em oracle_br@yahoogrupos.com.br, J. Laurindo Chiappa jlchiappa@...
 escreveu

 
  Tudo jóia, Rafael ?? Então, na verdade NÂO É o fato de vc abrir o
 arquivão grandão que degrada, MAS SIM quando vc abre E LÊ / CARREGA PARA A
 MEMÓRIA o arquivo, sim ??? Abrir apenas absolutamente ** Não ** gasta
 recursos apreciáveis, é só um file handle que foi usado, não se consumiu
 RAM, CPU, I/O ou rede quase nenhum... Faça uma experiência : crie um
 arquivo gigantesco na sua máquina de testes, meça a performance da máquina
 com os utilitários de So que vc tenha, depois faça um programinha numa
 linguagem de programação que domine e permita abrir arquivos (pode ser
 Java, C, .NET, VB, a que quiser e conhecer) que abra esse arquivo (SEM o
 ler, apenas o abra) e fique em pausa , aí noutra janela meça de novo a
 performance da máquina, vc vai ver que está praticamente IDÊNTICA...
  É justamente esse o ponto aonde a sua analogia cai pela base , é que o
 RDBMS Oracle  nunca  lê um datafile inteiro, do começo ao fim,
 okdoc ? Por que ?? Vamos ver...
 
  == Primeiramente, ESSA é a principal diferença do RDBMS para o editor
 de texto : enquanto o editor de texto é Obrigado a ler o arquivo inteiro
 (ou uma porção considerável dele), o RDBMS é um pouquinho mais esperto :
 ele divide o datafile em pequenos pedaços de mesmo tamanho (o chamado
 BLOCO), e em cada linha de cada tabela ele registra em qual bloco a linha
 está armazenada - assim, se ele precisar recuperar a linha X que está,
 digamos, no bloco 5000 do datafile, ele *** NÂO VAI ** ler do bloco 1 até o
 5000 - como ele SABE o tamanho do bloco (digamos que seja bloco de 8kb), se
 a informação está no bloco 5000 ele faz uma continha de 5000 * 8 kb =
 4096, aí ele pede para ler apenas essa posição do arquivo, yep ??? Esse
 tipo de operação, posicionando o leitor numa dada posição do arquivo e
 assim evitando varredura a partir do início se chama FILE SEEK
 (frequentemente abreviada por FSEEK, ou similares), e existe em
 praticamente todas as linguagens de programação modernas, mas
 principalmente existe na linguagem C, na qual o RDBMS Oracle foi escrito...
 
  E quando não sabemos qual linha contém a informação desejada (ou então
 queremos agrupar/processar MÚLTIPLAS linhas da tabela), e portanto não
 sabemos quais blocos são necessários, o que livra o RDBMS de ler o arquivo
 todo, bloco a bloco ??? O seguinte conceito : quando o RDBMS precisa de
 espaço para gravar dados, ele não aloca um só bloco, mas sim TODO um
 conjunto de blocos (de tamanho variável) chamado EXTENT, e o bloco de
 início de cada extent fica armazenado no database - assim, para a tabela X
 o RDBMS *** SABE *** que o primeiro extent começo no bloco tal, PORTANTO
 obviamente os n blocos anteriores Não precisam ser lidos, a partir do
 incício do arquvi, sim  Esquece isso, esse negócio de ler arquivo do
 início é coisa para editor de texto, não para RDBMS 
 
  Jóia ?? OBVIAMENTE por questão de didática eu falei aqui de modo geral,
 há DIVERSOS detalhes importantes que vc VAi captar no manual de Concepts do
 database, mas creio que o que eu falei já dá pra ter uma noção de porque o
 tamanho do arquivo em si é irrelevante para a performance... Até se vc
 pensar friamente um pouco a respeito, outras posições equivocadas sobre
 performance (como por exemplo separar tabelas x índices em datafiles
 diferentes) com os conceitos que expus caem por terra : SE o RDBMS ** nunca
 ** lê um datafile do início ao fim, sempre pulando para o bloco desejado
 OU no mínimo para o bloco aonde o extent se inicia, que diferença para a
 performance pode haver se os índices estão no mesmo arquivo/datafile que os
 dados (num único enorme arquivão gigante) ??? Bem pouca, Né ?
 
  []s
 
  Chiappa
 
  OBS : só para constar, o tamanho do arquivo pode ser ** crucial ** por
 questões Administrativas, não para performance - por exemplo, em caso de
 crash, quanto maior o arquivo mais tempo ele leva para ser voltado do
 backup, né ?? Ou ainda , os eventuais limites : de repente o teu hardware,
 ou qquer componente do teu software relaionado a discos (ou mesmo o teu SO,
 porque não ?) TEm um limite de X gigabytes para um único arquivo, de
 repente vc pode acabar com corrupção/erros se deixar o 

Re: [oracle_br] Re: Performance índice PK String x Number

2013-04-23 Por tôpico Daniel Mello
Muito obrigado Chiappa, realmente pelo que pesquisei se houver diferença será 
irrisória. Apesar de todos os prós que citou que há sobre o type number, pra 
esse caso não teremos pra onde correr. :)

Agradeço mais uma vez.
 

Daniel





 De: J. Laurindo Chiappa jlchia...@yahoo.com.br
Para: oracle_br@yahoogrupos.com.br 
Enviadas: Terça-feira, 16 de Abril de 2013 17:01
Assunto: [oracle_br] Re: Performance índice PK String x Number
 

  No caso específico do RDBMS Oracle (que é aquele sobre o qual posso falar 
melhor), como http://www.ixora.com.au/notes/number_representation.htm e como o 
manual de reference nos dizem,  NUMBERs são gravados internamente em formato 
exponencial, então realmente em alguns casos podem consumir alguns bytes a 
menos,  o que em casos Extremos pode talvez chegar a fazer alguma diferença 
palpável em termos tamanho da chave e tamanho geral do índice e assim levar a 
alguma diferença de performance, mas via de regra se espera que essa diff seja 
** MUITO PEQUENA **, okdoc ? Não é o fato de vc poupar um ou dois bytes por 
registro que vai fazer a sua performance voar, ser Enormemente diferente, sim 
?? 
  As razões pelas quais eu  sempre Recomendo dar preferência a chaves numéricas 
se elas existem são muito mais de ordem prática, ie :
  
   - não há como se armazenar espaços em brancos, zeros á esquerda, 
maiúsculas/minúsculas, etc, em colunas NUMBERs, então TUDO que se refere à 
pesquisas insensitive e/ou transformação nos argumentos de pesquisa basicamente 
não é necessário quando a chave é numérica... Idem rotinas tipo SOUNDEX para 
de-duplicação de chaves parecidas (tipo LUIS, LUIZ, etc) , nada disso existe 
para NUMBERs 
  
   - NUMBERs são imunes a detalhes/settings de NLS, como 
acentuação/codificação, PRINCIPALMENTE se a programação está sendo feita em 
PL/SQL, aonde vc representa um valor numérico com os dígitos e um ponto decimal 
e acabou
  
   - colunas NUMBER já possuem validação de dados automática, que não permite 
entrar nenhum caracter não-numérico, ao contrário de uma coluna string, aonde 
vc TERÁ que criar/manter constraints de CHECK para manter o domínio dos dados, 
se a chave tiver regra de formação
  
    - as chaves numéricas podem ser FACILMENTE auto-alimentadas via SEQUENCE, 
enquanto as strings demanda alguma conversão em cima da sequence
    
    e coisas do tipo...
    
    []s
    
      Chiappa

--- Em oracle_br@yahoogrupos.com.br, Daniel Mello djnmello@... escreveu

 Boa tarde.
 
      Estou pesquisando maiores informações sobre a performance em se utilizar 
 os tipos Varchar2 e Number para criação de índices, como o Oracle (e outros 
 bancos) se comporta com uma e com outra. Tenho um caso específico onde 
 teremos que implementar uma PK de uma das principais tabelas do sistema em 
 varchar2, meu receio é com o passar do tempo e crescimento de todas as 
 tabelas envolvidas, meu desempenho seja prejudicado por conta disso. Alguém 
 já teve experiencia parecida?
 
 Tenho bancos Oracle (11g), SQL Server (2012) e MySql(5.6.x) envolvidos nesse 
 item.
 
 Obrigado.
 Daniel.
 
 [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] Re: Performance índice PK String x Number

2013-04-16 Por tôpico J. Laurindo Chiappa
  No caso específico do RDBMS Oracle (que é aquele sobre o qual posso falar 
melhor), como http://www.ixora.com.au/notes/number_representation.htm e como o 
manual de reference nos dizem,  NUMBERs são gravados internamente em formato 
exponencial, então realmente em alguns casos podem consumir alguns bytes a 
menos,  o que em casos Extremos pode talvez chegar a fazer alguma diferença 
palpável em termos tamanho da chave e tamanho geral do índice e assim levar a 
alguma diferença de performance, mas via de regra se espera que essa diff seja 
** MUITO PEQUENA **, okdoc ? Não é o fato de vc poupar um ou dois bytes por 
registro que vai fazer a sua performance voar, ser Enormemente diferente, sim 
?? 
  As razões pelas quais eu  sempre Recomendo dar preferência a chaves numéricas 
se elas existem são muito mais de ordem prática, ie :
  
   - não há como se armazenar espaços em brancos, zeros á esquerda, 
maiúsculas/minúsculas, etc, em colunas NUMBERs, então TUDO que se refere à 
pesquisas insensitive e/ou transformação nos argumentos de pesquisa basicamente 
não é necessário quando a chave é numérica... Idem rotinas tipo SOUNDEX para 
de-duplicação de chaves parecidas (tipo LUIS, LUIZ, etc) , nada disso existe 
para NUMBERs 
   
   - NUMBERs são imunes a detalhes/settings de NLS, como 
acentuação/codificação, PRINCIPALMENTE se a programação está sendo feita em 
PL/SQL, aonde vc representa um valor numérico com os dígitos e um ponto decimal 
e acabou
   
   - colunas NUMBER já possuem validação de dados automática, que não permite 
entrar nenhum caracter não-numérico, ao contrário de uma coluna string, aonde 
vc TERÁ que criar/manter constraints de CHECK para manter o domínio dos dados, 
se a chave tiver regra de formação
   
- as chaves numéricas podem ser FACILMENTE auto-alimentadas via SEQUENCE, 
enquanto as strings demanda alguma conversão em cima da sequence

e coisas do tipo...

[]s

  Chiappa

--- Em oracle_br@yahoogrupos.com.br, Daniel Mello djnmello@... escreveu

 Boa tarde.
 
      Estou pesquisando maiores informações sobre a performance em se utilizar 
 os tipos Varchar2 e Number para criação de índices, como o Oracle (e outros 
 bancos) se comporta com uma e com outra. Tenho um caso específico onde 
 teremos que implementar uma PK de uma das principais tabelas do sistema em 
 varchar2, meu receio é com o passar do tempo e crescimento de todas as 
 tabelas envolvidas, meu desempenho seja prejudicado por conta disso. Alguém 
 já teve experiencia parecida?
 
 Tenho bancos Oracle (11g), SQL Server (2012) e MySql(5.6.x) envolvidos nesse 
 item.
 
 Obrigado.
 Daniel.
 
 [As partes desta mensagem que não continham texto foram removidas]





[oracle_br] Re: Performance RMAN

2013-02-19 Por tôpico netodba
Fala Chiappa bom dia, vlw pela resposta.

Deixa eu explicar a situação. 
Não sou DBA fixo dessa empresa, a empresa que eu trabalho foi contratada pra 
fazer a criação do novo RAC e a migração dos dados.

Bem, eles nao tem a licença do Advanced Comprassion, ja falei das vantagens do 
AC e já passei a documentação pra eles.
Os LOB's não são gravados em Securefiles, mas esta na mesma situação do AC, 
entretanto o securefiles vai ser implementado.

Nesse RAC existem 2 bases de dados, uma de 2.5Tb e outra de 1Tb, não coloquei 
mas explicado nos posts anteriores pra nao expor o cliente, mas nao tem 
problema. Faço o backup rman da base maior no server 1(instancia1) e o bkp da 
2° base no server 3(instancia 3).

Achei super interessante sua abordagem sobre colocar os LOB's em tablespaces 
dedicadas e coloca-las em READ ONLY, os LOB's já estão em TB separadas, mas nao 
estao em Read only. Tb irei comentar essa ideia.




--- Em oracle_br@yahoogrupos.com.br, J. Laurindo Chiappa jlchiappa@... 
escreveu

  Neto, alguns comentários/obs :
  
  a) se vc está no 11gr2 E usa intensamente LOBs, eles estão gravados em 
 Securefiles ? Vc tem licenciado a Advanced Compression ?? Se sim, 
 http://www.oracle.com/us/products/database/db-advanced-compression-option-1525064.pdf
  nos alerta que nesse cenário vc não só consegue compressão como 
 DEDUPLICAÇÃO, o que deve encaixar como um luva se os seus LOBS são texto e 
 gravados como CLOB,coisas via de regra bastante compressíveis e com bastante 
 duplicação de strings, tipicamente...
  
  b) quando se fala de documentos governamentais (editais, licitações, 
 julgados, atas, etc) , é COMUM que grande parte desses documentos não sofra 
 alteração após a criação : considere SERIAMENTE a possibilidade de os ter em 
 tablespaces dedicadas que vc coloque em READ ONLY e use a opção de SKIP 
 READONLY no seu backup full O que Não Faz Sentido é vc backupear full 
 várias e várias vezes informação que não mudou/não muda, sim ??
  
   c) iirc vc está usando só um nó para o backup full - já Considerou ter mais 
 de um como Preferred para o RMAN ?
   
   []s
   
 Chiappa
 
 --- Em oracle_br@yahoogrupos.com.br, netodba neto.longhi@ escreveu
 
  Vlw pessoal
  
  ja mudei a compressão pra BASIC, aparentemente esta mas rapido mesmo.
  Vlw
  
  
  --- Em oracle_br@yahoogrupos.com.br, Wadson Ramon wramon@ escreveu
  
   Você pode mudar para assim.
   CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE
   FOR LOAD TRUE ;
   
   blz
   
   
   Em 16 de fevereiro de 2013 15:48, Vitor Junior vitorjr81@escreveu:
   
Experimentou usar compressed?
Em 16/02/2013 14:09, netodba neto.longhi@ escreveu:
   
 **


 Fala Pessoal,

 migrei uma base de dados 2.5 TB 10G pro 11.2.0.3, o meu problema é 
 que o
 backup rman ta demorando de mais.

 Ambiente:
 S.O: RH 6.3
 RAC 4 nós Oracle 11.2.0.3 em ASM
 Tamanho da base: 2.5 Tb
 Local onde é armazenado o backup é em acfs compartilhado com os 4 nós.
 O backup é executado apenas na instancia 1.

 política de backup:
 Domingo 1:00 da manhã roda um full.
 Segunda a sabado as 1:00 roda o incremental.
 Todo dia de 8:00 as 18:00 roda o de archivelog.

 compigurações do rman:

 CONFIGURE RETENTION POLICY TO REDUNDANCY 7;
 CONFIGURE BACKUP OPTIMIZATION ON;
 CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
 CONFIGURE CONTROLFILE AUTOBACKUP ON;
 CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; 
 #
 default
 CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO COMPRESSED
 BACKUPSET;
 CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
 CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # 
 default
 CONFIGURE MAXSETSIZE TO UNLIMITED; # default
 CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
 CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
 CONFIGURE COMPRESSION ALGORITHM 'HIGH' OPTIMIZE FOR LOAD TRUE AS OF
 RELEASE 'DEFAULT';
 CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
 CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+DG02_R6/snapcf_PRODDB.f';

 script de backup full:

 run {
 ALLOCATE CHANNEL ch00 TYPE disk ;
 ALLOCATE CHANNEL ch01 TYPE disk ;
 ALLOCATE CHANNEL ch02 TYPE disk ;
 ALLOCATE CHANNEL ch03 TYPE disk ;
 backup incremental level 0 tag = bkpL0_proddb
 format

'/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/backup/bkp_%d_%T_%s_%p_%U'
 database;
 sql 'alter system archive log current';
 RELEASE CHANNEL ch00;
 RELEASE CHANNEL ch01;
 RELEASE CHANNEL ch02;
 RELEASE CHANNEL ch03;

 ALLOCATE CHANNEL ch00 TYPE disk;
 backup tag = contf_prodb
 format

'/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/backup/contf_%d_%T_%s_%p_%U'
 current controlfile;
 RELEASE CHANNEL ch00;

 ALLOCATE CHANNEL ch00 TYPE 

[oracle_br] Re: Performance RMAN

2013-02-19 Por tôpico J. Laurindo Chiappa
  Tudo joinha, Neto ? Vou fazer alguns comentários :
  
  - sobre a sua situação, seguinte : pelo jeito o pessoal lá do cliente não tem 
lá muita expertise, então mesmo vc não tendo sido contratado especificamente 
para melhoria do ambiente atual, penso que vale MUITO a pena vc Recomendar a 
melhor prática aonde vc a ver... Claro, vc não vai poder Implementar mas 
cumpriu a sua parte, explorou o teu conhecimento técnico, tentou transferir um 
pouquinho de tecnologia para o cliente, okdoc ...
Assim, sobre o AC por exemplo, não basta só indicar a Documentação : no 
link mesmo que te passei há alguns números, e na Oracle procurando no technet 
vc acha diversos cases de utilização, vc Tem que passar também esse material 
para o Cliente (e Não apenas para os técnicos, mas Também para o pessoal 
decisório) e anexar junto com a sua Recomendação por escrito ... NÂO ESQUEÇA de 
deixar bem CLARO para eles o quanto vai ser poupado de STORAGE com a 
compactação, sim ? Esse pessoal é CUSTo versus BENEFÍCIO, números são o que 
eles entendem...

   - sobre a performance do backup, a idéia de usar ao mesmo tempo, em 
paralelo, dois (ou mesmo três) nós é principalmente para aumentar o poder de 
CPU disponível para o backup, além de poder ter algum Paralelismo na execução - 
isso no backup FULL, claro, que imagino é o mais demorado, né ? Inclusive, já 
que ele roda de madrugada no domingo, certamente ter múltiplos nós trabalhando 
no backup imagino que não deve causar transtornos, deve ser uma janela meio 
morta - mas NEM preciso dizer, isso tem que ser Testado ...
E sim, quando me perguntam como fazer um tuning, como melhorar a 
performance de um processamento qualquer, a minha Resposta ** sempre ** é : vc 
está fazendo algo inútil, repetitivo, que pode ser descartado ? Se sim, DEIXE 
de o fazer e pronto, lucro instantâneo SEM investimento - é + ou - que nem 
aquela história do sujeito que vai ao médico e diz Dr, dói muito quando eu 
dobro o braço assim e assim, a resposta do médico só pode ser Ok, deixe de 
dobrar o braço assim e assim ... 
 Então, sabendo disso e sabendo da (tipicamente)  baixíssima taxa de 
atualização de documentos governamentais, não backupear a cada vez dados que vc 
sabe que não mudou é o mínimo - isso pode ser feito colocando as tablespaces 
referentes em read-only, pode se ter uma Lista de Exclusão de datafiles, não 
importa muito o como, desde que o objetivo de só backupear o que precisa seja 
alcançado. LÓGICO, esse tipo de política torna AINDA MAIS PREMENTE o ** teste 
de restore ** frequente e real - não basta vc ter anotado que a informação X 
que não mudou foi backupeada as 3 vezes de praxe em 3 mídias diferentes, antes 
de pode as excluir do backup vc ABSOLUTAMENTE Precisa que tenham sido feitos 
testes de RESTORE, só assim vc tem CONFIABILIDADE... Idem para o RODÍZIO DE 
MÍDIA : mídias sofrem deterioração com o tempo (é em certa medida Inevitável, 
sejam mídias de tecnologia óptica ou magnética), então de tanto em tanto vc TEM 
passar esse backup para uma nova mídia, RETESTAR e liberar a mídia anterior...
   
   - sobre securefiles, sim : não se entende a utilização de LOBs em grandes 
volumes no 11gr2 sem eles... Fontes como 
http://www.oracle.com/technetwork/database/perf-087187.html alegam melhorias de 
até 10x na ingestão de dados - nem sempre na prática se chega perto disso,é 
Claro,  mas que em tese há vantagens para eles sobre os tradicionais basic 
files, é inegável. Bata FORTE nisso, insista, faça uma POC se preciso...
   
 []s
 
   Chiappa

--- Em oracle_br@yahoogrupos.com.br, netodba neto.longhi@... escreveu

 Fala Chiappa bom dia, vlw pela resposta.
 
 Deixa eu explicar a situação. 
 Não sou DBA fixo dessa empresa, a empresa que eu trabalho foi contratada pra 
 fazer a criação do novo RAC e a migração dos dados.
 
 Bem, eles nao tem a licença do Advanced Comprassion, ja falei das vantagens 
 do AC e já passei a documentação pra eles.
 Os LOB's não são gravados em Securefiles, mas esta na mesma situação do AC, 
 entretanto o securefiles vai ser implementado.
 
 Nesse RAC existem 2 bases de dados, uma de 2.5Tb e outra de 1Tb, não coloquei 
 mas explicado nos posts anteriores pra nao expor o cliente, mas nao tem 
 problema. Faço o backup rman da base maior no server 1(instancia1) e o bkp da 
 2° base no server 3(instancia 3).
 
 Achei super interessante sua abordagem sobre colocar os LOB's em tablespaces 
 dedicadas e coloca-las em READ ONLY, os LOB's já estão em TB separadas, mas 
 nao estao em Read only. Tb irei comentar essa ideia.
 
 
 
 
 --- Em oracle_br@yahoogrupos.com.br, J. Laurindo Chiappa jlchiappa@ 
 escreveu
 
   Neto, alguns comentários/obs :
   
   a) se vc está no 11gr2 E usa intensamente LOBs, eles estão gravados em 
  Securefiles ? Vc tem licenciado a Advanced Compression ?? Se sim, 
  http://www.oracle.com/us/products/database/db-advanced-compression-option-1525064.pdf
   nos alerta que nesse cenário vc não só 

[oracle_br] Re: Performance RMAN

2013-02-18 Por tôpico ederson2001br
Bom dia Neto,

Mudar o algoritmo de compressão ajuda pois será uma tarefa a menos. No caso de 
algoritmos, MEDIUM, ZLIB e BZIP2 são as outras opções, mas algumas vem somente 
na versão Enterprise (Advanced Compressed).

Bem, já que vc está na versão Enterprise, verifique a opção de habilitar o 
BLOCK CHANGE TRACKING. Será gravado um arquivo bct.cf e este arquivo controlará 
os blocos que sofreram modificação. Com BACKUP OPTIMIZATION ON, o seu backup 
incremental vai gravar somente o que foi modificado (vai ficar uma cópia bem 
pequena). Como vc colocou redundância 7, haverá uma boa redundância dos 
arquivos, mas o BCT vai controlar a cópia e você poderá colocar incremental 
diário, sem precisar retirar a cópia do archivelog (que será mais uma 
redundância).

Note que o arquivo BCT será um ponto de falha, ele também precisará estar em 
local seguro, com backup pelo S.O. (então melhor ficar fora do ASM). Se perder 
o arquivo BCT, o backup que volta é somente o FULL, ou restore incomplete, veja 
bem esta informação.

É uma mudança grande, representa um paradigma, vc deve testar bem em 
homologação e estar tranquilo com o novo ambiente, antes de implementar em 
produção.

Para habilitar:
SQL ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/u01/bct.cf';

Para desabilitar:
SQL ALTER DATABASE DISABLE BLOCK CHANGE TRANCKING;

Convém colocar o CATALOG (dicionário do RMAN) do seu banco em outro servidor, 
não vi vc relatando como está esta configuração. Sem criar o CATALOG, vc estará 
usando o TARGET / (dicionário na própria base). Em alguns casos de desastres, o 
retorno somente se dá com sucesso se o catálogo estiver em outro servidor. Veja 
isto também.

Creio que este tópico vai render uma boa discussão, pois cada um tem seu 
próprio conceito e seu nível de garantias (leia-se paranóia).


Ederson Elias
DBA Oracle
http://br.linkedin.com/pub/ederson-elias/24/8b/8b0


--- Em oracle_br@yahoogrupos.com.br, netodba neto.longhi@... escreveu

 Vlw pessoal
 
 ja mudei a compressão pra BASIC, aparentemente esta mas rapido mesmo.
 Vlw
 
 
 --- Em oracle_br@yahoogrupos.com.br, Wadson Ramon wramon@ escreveu
 
  Você pode mudar para assim.
  CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE
  FOR LOAD TRUE ;
  
  blz
  
  
  Em 16 de fevereiro de 2013 15:48, Vitor Junior vitorjr81@escreveu:
  
   Experimentou usar compressed?
   Em 16/02/2013 14:09, netodba neto.longhi@ escreveu:
  
**
   
   
Fala Pessoal,
   
migrei uma base de dados 2.5 TB 10G pro 11.2.0.3, o meu problema é que o
backup rman ta demorando de mais.
   
Ambiente:
S.O: RH 6.3
RAC 4 nós Oracle 11.2.0.3 em ASM
Tamanho da base: 2.5 Tb
Local onde é armazenado o backup é em acfs compartilhado com os 4 nós.
O backup é executado apenas na instancia 1.
   
política de backup:
Domingo 1:00 da manhã roda um full.
Segunda a sabado as 1:00 roda o incremental.
Todo dia de 8:00 as 18:00 roda o de archivelog.
   
compigurações do rman:
   
CONFIGURE RETENTION POLICY TO REDUNDANCY 7;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; #
default
CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO COMPRESSED
BACKUPSET;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'HIGH' OPTIMIZE FOR LOAD TRUE AS OF
RELEASE 'DEFAULT';
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+DG02_R6/snapcf_PRODDB.f';
   
script de backup full:
   
run {
ALLOCATE CHANNEL ch00 TYPE disk ;
ALLOCATE CHANNEL ch01 TYPE disk ;
ALLOCATE CHANNEL ch02 TYPE disk ;
ALLOCATE CHANNEL ch03 TYPE disk ;
backup incremental level 0 tag = bkpL0_proddb
format
   
   '/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/backup/bkp_%d_%T_%s_%p_%U'
database;
sql 'alter system archive log current';
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
RELEASE CHANNEL ch02;
RELEASE CHANNEL ch03;
   
ALLOCATE CHANNEL ch00 TYPE disk;
backup tag = contf_prodb
format
   
   '/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/backup/contf_%d_%T_%s_%p_%U'
current controlfile;
RELEASE CHANNEL ch00;
   
ALLOCATE CHANNEL ch00 TYPE disk;
ALLOCATE CHANNEL ch01 TYPE disk;
backup tag = arch_prodb
format
   
   '/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/archive/arc_%d_%T_%s_%p_%U'
check logical archivelog all delete input;
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
}
   
script backup incremental:
   
run {
ALLOCATE 

[oracle_br] Re: Performance RMAN

2013-02-18 Por tôpico netodba
Bom dia pessoal,

descobri qual era o problema do RMAN.
Como o meu cliente é uma instituição do Governo Legislativo, na base de dados 
há extrema utilização de LOB's, só pra vcs terem uma ideia existe uma tabela 
com LOB de 1.2T. 
O problema era causado na hora de fazer a compressão desses LOBS, li em artigos 
e blogs, que o RMAN tem uma baixa performance com compressão de LOB's, com isso 
mudei a compressão de HIGH pra BASIC, e de fato achei o problema. Depois da 
mudança consegui uma taxa de 10G por minuto e isso é bom, consegui deixar o 
backup do RMAN ajustado pro horario de backup.

Ederson, obrigado pela resposta.
Utilizo sim um catalog do rman em outro banco, apenas nao coloquei no tópico. 
Vou disponiblizar a solução do BLOCK CHANGE TRACKING com o chefe do setor, 
obrigado pela dica.

Então pessoal fica a dica, compressão HIGH do rman envolvendo LOB's não é boa.

abraço


--- Em oracle_br@yahoogrupos.com.br, ederson2001br ederson2001br@... 
escreveu

 Bom dia Neto,
 
 Mudar o algoritmo de compressão ajuda pois será uma tarefa a menos. No caso 
 de algoritmos, MEDIUM, ZLIB e BZIP2 são as outras opções, mas algumas vem 
 somente na versão Enterprise (Advanced Compressed).
 
 Bem, já que vc está na versão Enterprise, verifique a opção de habilitar o 
 BLOCK CHANGE TRACKING. Será gravado um arquivo bct.cf e este arquivo 
 controlará os blocos que sofreram modificação. Com BACKUP OPTIMIZATION ON, o 
 seu backup incremental vai gravar somente o que foi modificado (vai ficar uma 
 cópia bem pequena). Como vc colocou redundância 7, haverá uma boa redundância 
 dos arquivos, mas o BCT vai controlar a cópia e você poderá colocar 
 incremental diário, sem precisar retirar a cópia do archivelog (que será mais 
 uma redundância).
 
 Note que o arquivo BCT será um ponto de falha, ele também precisará estar em 
 local seguro, com backup pelo S.O. (então melhor ficar fora do ASM). Se 
 perder o arquivo BCT, o backup que volta é somente o FULL, ou restore 
 incomplete, veja bem esta informação.
 
 É uma mudança grande, representa um paradigma, vc deve testar bem em 
 homologação e estar tranquilo com o novo ambiente, antes de implementar em 
 produção.
 
 Para habilitar:
 SQL ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/u01/bct.cf';
 
 Para desabilitar:
 SQL ALTER DATABASE DISABLE BLOCK CHANGE TRANCKING;
 
 Convém colocar o CATALOG (dicionário do RMAN) do seu banco em outro servidor, 
 não vi vc relatando como está esta configuração. Sem criar o CATALOG, vc 
 estará usando o TARGET / (dicionário na própria base). Em alguns casos de 
 desastres, o retorno somente se dá com sucesso se o catálogo estiver em outro 
 servidor. Veja isto também.
 
 Creio que este tópico vai render uma boa discussão, pois cada um tem seu 
 próprio conceito e seu nível de garantias (leia-se paranóia).
 
 
 Ederson Elias
 DBA Oracle
 http://br.linkedin.com/pub/ederson-elias/24/8b/8b0
 
 
 --- Em oracle_br@yahoogrupos.com.br, netodba neto.longhi@ escreveu
 
  Vlw pessoal
  
  ja mudei a compressão pra BASIC, aparentemente esta mas rapido mesmo.
  Vlw
  
  
  --- Em oracle_br@yahoogrupos.com.br, Wadson Ramon wramon@ escreveu
  
   Você pode mudar para assim.
   CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE
   FOR LOAD TRUE ;
   
   blz
   
   
   Em 16 de fevereiro de 2013 15:48, Vitor Junior vitorjr81@escreveu:
   
Experimentou usar compressed?
Em 16/02/2013 14:09, netodba neto.longhi@ escreveu:
   
 **


 Fala Pessoal,

 migrei uma base de dados 2.5 TB 10G pro 11.2.0.3, o meu problema é 
 que o
 backup rman ta demorando de mais.

 Ambiente:
 S.O: RH 6.3
 RAC 4 nós Oracle 11.2.0.3 em ASM
 Tamanho da base: 2.5 Tb
 Local onde é armazenado o backup é em acfs compartilhado com os 4 nós.
 O backup é executado apenas na instancia 1.

 política de backup:
 Domingo 1:00 da manhã roda um full.
 Segunda a sabado as 1:00 roda o incremental.
 Todo dia de 8:00 as 18:00 roda o de archivelog.

 compigurações do rman:

 CONFIGURE RETENTION POLICY TO REDUNDANCY 7;
 CONFIGURE BACKUP OPTIMIZATION ON;
 CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
 CONFIGURE CONTROLFILE AUTOBACKUP ON;
 CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; 
 #
 default
 CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO COMPRESSED
 BACKUPSET;
 CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
 CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # 
 default
 CONFIGURE MAXSETSIZE TO UNLIMITED; # default
 CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
 CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
 CONFIGURE COMPRESSION ALGORITHM 'HIGH' OPTIMIZE FOR LOAD TRUE AS OF
 RELEASE 'DEFAULT';
 CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
 CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+DG02_R6/snapcf_PRODDB.f';
   

Re: [oracle_br] Re: Performance RMAN

2013-02-18 Por tôpico Ivan Ricardo Schuster
Ederson,

AFAIK, o Block Change Tracking serve somente para, ao realizar o
*BACKUP* incremental, o RMAN ir direto ao ponto, ou seja, não precisar
percorrer todos os blocos dos datafiles em busca de alteração, um mapa
do tesouro, digamos assim.

Não entendo a relação deste arquivo BCT com o *RECOVER*, que ao meu
ver é independente de ter ou não habilitada esta funcionalidade, ou
seja, este arquivo não é necessário para a recuperação do banco.
Portanto, teoricamente, a perda deste arquivo causará a necessidade de
leitura de todos os blocos do banco de dados no próximo backup
incremental, ou a necessidade de um backup full para reorganizar a
casa. Nada muito preocupante para um banco de 2,5T ao meu ver.
Por favor, corrijam-me se eu estiver errado, não me baseei em nenhuma
documentação para chegar a esta conclusão..

Outra coisa, não li em lugar algum que este banco é Enterprise. Se não
for, esqueça BCT e paralelismo de backup.


2013/2/18 ederson2001br ederson200...@yahoo.com.br:
 Bom dia Neto,

 Mudar o algoritmo de compressão ajuda pois será uma tarefa a menos. No caso 
 de algoritmos, MEDIUM, ZLIB e BZIP2 são as outras opções, mas algumas vem 
 somente na versão Enterprise (Advanced Compressed).

 Bem, já que vc está na versão Enterprise, verifique a opção de habilitar o 
 BLOCK CHANGE TRACKING. Será gravado um arquivo bct.cf e este arquivo 
 controlará os blocos que sofreram modificação. Com BACKUP OPTIMIZATION ON, o 
 seu backup incremental vai gravar somente o que foi modificado (vai ficar uma 
 cópia bem pequena). Como vc colocou redundância 7, haverá uma boa redundância 
 dos arquivos, mas o BCT vai controlar a cópia e você poderá colocar 
 incremental diário, sem precisar retirar a cópia do archivelog (que será mais 
 uma redundância).

 Note que o arquivo BCT será um ponto de falha, ele também precisará estar em 
 local seguro, com backup pelo S.O. (então melhor ficar fora do ASM). Se 
 perder o arquivo BCT, o backup que volta é somente o FULL, ou restore 
 incomplete, veja bem esta informação.

 É uma mudança grande, representa um paradigma, vc deve testar bem em 
 homologação e estar tranquilo com o novo ambiente, antes de implementar em 
 produção.

 Para habilitar:
 SQL ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/u01/bct.cf';

 Para desabilitar:
 SQL ALTER DATABASE DISABLE BLOCK CHANGE TRANCKING;

 Convém colocar o CATALOG (dicionário do RMAN) do seu banco em outro servidor, 
 não vi vc relatando como está esta configuração. Sem criar o CATALOG, vc 
 estará usando o TARGET / (dicionário na própria base). Em alguns casos de 
 desastres, o retorno somente se dá com sucesso se o catálogo estiver em outro 
 servidor. Veja isto também.

 Creio que este tópico vai render uma boa discussão, pois cada um tem seu 
 próprio conceito e seu nível de garantias (leia-se paranóia).


 Ederson Elias
 DBA Oracle
 http://br.linkedin.com/pub/ederson-elias/24/8b/8b0


 --- Em oracle_br@yahoogrupos.com.br, netodba neto.longhi@... escreveu

 Vlw pessoal

 ja mudei a compressão pra BASIC, aparentemente esta mas rapido mesmo.
 Vlw


 --- Em oracle_br@yahoogrupos.com.br, Wadson Ramon wramon@ escreveu
 
  Você pode mudar para assim.
  CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE
  FOR LOAD TRUE ;
 
  blz
 
 
  Em 16 de fevereiro de 2013 15:48, Vitor Junior vitorjr81@escreveu:
 
   Experimentou usar compressed?
   Em 16/02/2013 14:09, netodba neto.longhi@ escreveu:
  
**
   
   
Fala Pessoal,
   
migrei uma base de dados 2.5 TB 10G pro 11.2.0.3, o meu problema é que 
o
backup rman ta demorando de mais.
   
Ambiente:
S.O: RH 6.3
RAC 4 nós Oracle 11.2.0.3 em ASM
Tamanho da base: 2.5 Tb
Local onde é armazenado o backup é em acfs compartilhado com os 4 nós.
O backup é executado apenas na instancia 1.
   
política de backup:
Domingo 1:00 da manhã roda um full.
Segunda a sabado as 1:00 roda o incremental.
Todo dia de 8:00 as 18:00 roda o de archivelog.
   
compigurações do rman:
   
CONFIGURE RETENTION POLICY TO REDUNDANCY 7;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; #
default
CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO COMPRESSED
BACKUPSET;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'HIGH' OPTIMIZE FOR LOAD TRUE AS OF
RELEASE 'DEFAULT';
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+DG02_R6/snapcf_PRODDB.f';
   
script de backup full:
   
run {
ALLOCATE CHANNEL ch00 

[oracle_br] Re: Performance RMAN

2013-02-18 Por tôpico netodba
Bom dia Ivan,

como eu coloquei na mensagem original
ORACLE RAC 4 nós, fica subentendido que o Banco é Enterprise.

Mas vai ai

   INST_ID BANNER
-- 

 1 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit 
Production
 1 PL/SQL Release 11.2.0.3.0 - Production
 1 CORE 11.2.0.3.0  Production
 1 TNS for Linux: Version 11.2.0.3.0 - Production
 1 NLSRTL Version 11.2.0.3.0 - Production
 4 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit 
Production
 4 PL/SQL Release 11.2.0.3.0 - Production
 4 CORE 11.2.0.3.0  Production
 4 TNS for Linux: Version 11.2.0.3.0 - Production
 4 NLSRTL Version 11.2.0.3.0 - Production
 3 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit 
Production
 3 PL/SQL Release 11.2.0.3.0 - Production
 3 CORE 11.2.0.3.0  Production
 3 TNS for Linux: Version 11.2.0.3.0 - Production
 3 NLSRTL Version 11.2.0.3.0 - Production
 2 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit 
Production
 2 PL/SQL Release 11.2.0.3.0 - Production
 2 CORE 11.2.0.3.0  Production
 2 TNS for Linux: Version 11.2.0.3.0 - Production
 2 NLSRTL Version 11.2.0.3.0 - Production



--- Em oracle_br@yahoogrupos.com.br, Ivan Ricardo Schuster ivanrs79@... 
escreveu

 Ederson,
 
 AFAIK, o Block Change Tracking serve somente para, ao realizar o
 *BACKUP* incremental, o RMAN ir direto ao ponto, ou seja, não precisar
 percorrer todos os blocos dos datafiles em busca de alteração, um mapa
 do tesouro, digamos assim.
 
 Não entendo a relação deste arquivo BCT com o *RECOVER*, que ao meu
 ver é independente de ter ou não habilitada esta funcionalidade, ou
 seja, este arquivo não é necessário para a recuperação do banco.
 Portanto, teoricamente, a perda deste arquivo causará a necessidade de
 leitura de todos os blocos do banco de dados no próximo backup
 incremental, ou a necessidade de um backup full para reorganizar a
 casa. Nada muito preocupante para um banco de 2,5T ao meu ver.
 Por favor, corrijam-me se eu estiver errado, não me baseei em nenhuma
 documentação para chegar a esta conclusão..
 
 Outra coisa, não li em lugar algum que este banco é Enterprise. Se não
 for, esqueça BCT e paralelismo de backup.
 
 
 2013/2/18 ederson2001br ederson2001br@...:
  Bom dia Neto,
 
  Mudar o algoritmo de compressão ajuda pois será uma tarefa a menos. No caso 
  de algoritmos, MEDIUM, ZLIB e BZIP2 são as outras opções, mas algumas vem 
  somente na versão Enterprise (Advanced Compressed).
 
  Bem, já que vc está na versão Enterprise, verifique a opção de habilitar o 
  BLOCK CHANGE TRACKING. Será gravado um arquivo bct.cf e este arquivo 
  controlará os blocos que sofreram modificação. Com BACKUP OPTIMIZATION ON, 
  o seu backup incremental vai gravar somente o que foi modificado (vai ficar 
  uma cópia bem pequena). Como vc colocou redundância 7, haverá uma boa 
  redundância dos arquivos, mas o BCT vai controlar a cópia e você poderá 
  colocar incremental diário, sem precisar retirar a cópia do archivelog (que 
  será mais uma redundância).
 
  Note que o arquivo BCT será um ponto de falha, ele também precisará estar 
  em local seguro, com backup pelo S.O. (então melhor ficar fora do ASM). Se 
  perder o arquivo BCT, o backup que volta é somente o FULL, ou restore 
  incomplete, veja bem esta informação.
 
  É uma mudança grande, representa um paradigma, vc deve testar bem em 
  homologação e estar tranquilo com o novo ambiente, antes de implementar em 
  produção.
 
  Para habilitar:
  SQL ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/u01/bct.cf';
 
  Para desabilitar:
  SQL ALTER DATABASE DISABLE BLOCK CHANGE TRANCKING;
 
  Convém colocar o CATALOG (dicionário do RMAN) do seu banco em outro 
  servidor, não vi vc relatando como está esta configuração. Sem criar o 
  CATALOG, vc estará usando o TARGET / (dicionário na própria base). Em 
  alguns casos de desastres, o retorno somente se dá com sucesso se o 
  catálogo estiver em outro servidor. Veja isto também.
 
  Creio que este tópico vai render uma boa discussão, pois cada um tem seu 
  próprio conceito e seu nível de garantias (leia-se paranóia).
 
 
  Ederson Elias
  DBA Oracle
  http://br.linkedin.com/pub/ederson-elias/24/8b/8b0
 
 
  --- Em oracle_br@yahoogrupos.com.br, netodba neto.longhi@ escreveu
 
  Vlw pessoal
 
  ja mudei a compressão pra BASIC, aparentemente esta mas rapido mesmo.
  Vlw
 
 
  --- Em oracle_br@yahoogrupos.com.br, Wadson Ramon wramon@ escreveu
  
   Você pode mudar para assim.
   CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE
   FOR LOAD TRUE ;
  
   blz
  
  
   Em 16 de fevereiro de 2013 15:48, Vitor Junior vitorjr81@escreveu:
  
Experimentou usar compressed?
Em 16/02/2013 14:09, netodba 

[oracle_br] Re: Performance RMAN

2013-02-18 Por tôpico netodba
Hmm blzz
pensava que era no maximo 2 com 1 processador.

Vlw =)



--- Em oracle_br@yahoogrupos.com.br, Ivan Ricardo Schuster ivanrs79@... 
escreveu

 Ederson,
 
 AFAIK, o Block Change Tracking serve somente para, ao realizar o
 *BACKUP* incremental, o RMAN ir direto ao ponto, ou seja, não precisar
 percorrer todos os blocos dos datafiles em busca de alteração, um mapa
 do tesouro, digamos assim.
 
 Não entendo a relação deste arquivo BCT com o *RECOVER*, que ao meu
 ver é independente de ter ou não habilitada esta funcionalidade, ou
 seja, este arquivo não é necessário para a recuperação do banco.
 Portanto, teoricamente, a perda deste arquivo causará a necessidade de
 leitura de todos os blocos do banco de dados no próximo backup
 incremental, ou a necessidade de um backup full para reorganizar a
 casa. Nada muito preocupante para um banco de 2,5T ao meu ver.
 Por favor, corrijam-me se eu estiver errado, não me baseei em nenhuma
 documentação para chegar a esta conclusão..
 
 Outra coisa, não li em lugar algum que este banco é Enterprise. Se não
 for, esqueça BCT e paralelismo de backup.
 
 
 2013/2/18 ederson2001br ederson2001br@...:
  Bom dia Neto,
 
  Mudar o algoritmo de compressão ajuda pois será uma tarefa a menos. No caso 
  de algoritmos, MEDIUM, ZLIB e BZIP2 são as outras opções, mas algumas vem 
  somente na versão Enterprise (Advanced Compressed).
 
  Bem, já que vc está na versão Enterprise, verifique a opção de habilitar o 
  BLOCK CHANGE TRACKING. Será gravado um arquivo bct.cf e este arquivo 
  controlará os blocos que sofreram modificação. Com BACKUP OPTIMIZATION ON, 
  o seu backup incremental vai gravar somente o que foi modificado (vai ficar 
  uma cópia bem pequena). Como vc colocou redundância 7, haverá uma boa 
  redundância dos arquivos, mas o BCT vai controlar a cópia e você poderá 
  colocar incremental diário, sem precisar retirar a cópia do archivelog (que 
  será mais uma redundância).
 
  Note que o arquivo BCT será um ponto de falha, ele também precisará estar 
  em local seguro, com backup pelo S.O. (então melhor ficar fora do ASM). Se 
  perder o arquivo BCT, o backup que volta é somente o FULL, ou restore 
  incomplete, veja bem esta informação.
 
  É uma mudança grande, representa um paradigma, vc deve testar bem em 
  homologação e estar tranquilo com o novo ambiente, antes de implementar em 
  produção.
 
  Para habilitar:
  SQL ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/u01/bct.cf';
 
  Para desabilitar:
  SQL ALTER DATABASE DISABLE BLOCK CHANGE TRANCKING;
 
  Convém colocar o CATALOG (dicionário do RMAN) do seu banco em outro 
  servidor, não vi vc relatando como está esta configuração. Sem criar o 
  CATALOG, vc estará usando o TARGET / (dicionário na própria base). Em 
  alguns casos de desastres, o retorno somente se dá com sucesso se o 
  catálogo estiver em outro servidor. Veja isto também.
 
  Creio que este tópico vai render uma boa discussão, pois cada um tem seu 
  próprio conceito e seu nível de garantias (leia-se paranóia).
 
 
  Ederson Elias
  DBA Oracle
  http://br.linkedin.com/pub/ederson-elias/24/8b/8b0
 
 
  --- Em oracle_br@yahoogrupos.com.br, netodba neto.longhi@ escreveu
 
  Vlw pessoal
 
  ja mudei a compressão pra BASIC, aparentemente esta mas rapido mesmo.
  Vlw
 
 
  --- Em oracle_br@yahoogrupos.com.br, Wadson Ramon wramon@ escreveu
  
   Você pode mudar para assim.
   CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE
   FOR LOAD TRUE ;
  
   blz
  
  
   Em 16 de fevereiro de 2013 15:48, Vitor Junior vitorjr81@escreveu:
  
Experimentou usar compressed?
Em 16/02/2013 14:09, netodba neto.longhi@ escreveu:
   
 **


 Fala Pessoal,

 migrei uma base de dados 2.5 TB 10G pro 11.2.0.3, o meu problema é 
 que o
 backup rman ta demorando de mais.

 Ambiente:
 S.O: RH 6.3
 RAC 4 nós Oracle 11.2.0.3 em ASM
 Tamanho da base: 2.5 Tb
 Local onde é armazenado o backup é em acfs compartilhado com os 4 
 nós.
 O backup é executado apenas na instancia 1.

 política de backup:
 Domingo 1:00 da manhã roda um full.
 Segunda a sabado as 1:00 roda o incremental.
 Todo dia de 8:00 as 18:00 roda o de archivelog.

 compigurações do rman:

 CONFIGURE RETENTION POLICY TO REDUNDANCY 7;
 CONFIGURE BACKUP OPTIMIZATION ON;
 CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
 CONFIGURE CONTROLFILE AUTOBACKUP ON;
 CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 
 '%F'; #
 default
 CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO COMPRESSED
 BACKUPSET;
 CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
 CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # 
 default
 CONFIGURE MAXSETSIZE TO UNLIMITED; # default
 CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
 CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
 

[oracle_br] Re: Performance RMAN

2013-02-18 Por tôpico J. Laurindo Chiappa
 Neto, alguns comentários/obs :
 
 a) se vc está no 11gr2 E usa intensamente LOBs, eles estão gravados em 
Securefiles ? Vc tem licenciado a Advanced Compression ?? Se sim, 
http://www.oracle.com/us/products/database/db-advanced-compression-option-1525064.pdf
 nos alerta que nesse cenário vc não só consegue compressão como DEDUPLICAÇÃO, 
o que deve encaixar como um luva se os seus LOBS são texto e gravados como 
CLOB,coisas via de regra bastante compressíveis e com bastante duplicação de 
strings, tipicamente...
 
 b) quando se fala de documentos governamentais (editais, licitações, julgados, 
atas, etc) , é COMUM que grande parte desses documentos não sofra alteração 
após a criação : considere SERIAMENTE a possibilidade de os ter em tablespaces 
dedicadas que vc coloque em READ ONLY e use a opção de SKIP READONLY no seu 
backup full O que Não Faz Sentido é vc backupear full várias e várias vezes 
informação que não mudou/não muda, sim ??
 
  c) iirc vc está usando só um nó para o backup full - já Considerou ter mais 
de um como Preferred para o RMAN ?
  
  []s
  
Chiappa

--- Em oracle_br@yahoogrupos.com.br, netodba neto.longhi@... escreveu

 Vlw pessoal
 
 ja mudei a compressão pra BASIC, aparentemente esta mas rapido mesmo.
 Vlw
 
 
 --- Em oracle_br@yahoogrupos.com.br, Wadson Ramon wramon@ escreveu
 
  Você pode mudar para assim.
  CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE
  FOR LOAD TRUE ;
  
  blz
  
  
  Em 16 de fevereiro de 2013 15:48, Vitor Junior vitorjr81@escreveu:
  
   Experimentou usar compressed?
   Em 16/02/2013 14:09, netodba neto.longhi@ escreveu:
  
**
   
   
Fala Pessoal,
   
migrei uma base de dados 2.5 TB 10G pro 11.2.0.3, o meu problema é que o
backup rman ta demorando de mais.
   
Ambiente:
S.O: RH 6.3
RAC 4 nós Oracle 11.2.0.3 em ASM
Tamanho da base: 2.5 Tb
Local onde é armazenado o backup é em acfs compartilhado com os 4 nós.
O backup é executado apenas na instancia 1.
   
política de backup:
Domingo 1:00 da manhã roda um full.
Segunda a sabado as 1:00 roda o incremental.
Todo dia de 8:00 as 18:00 roda o de archivelog.
   
compigurações do rman:
   
CONFIGURE RETENTION POLICY TO REDUNDANCY 7;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; #
default
CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO COMPRESSED
BACKUPSET;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'HIGH' OPTIMIZE FOR LOAD TRUE AS OF
RELEASE 'DEFAULT';
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+DG02_R6/snapcf_PRODDB.f';
   
script de backup full:
   
run {
ALLOCATE CHANNEL ch00 TYPE disk ;
ALLOCATE CHANNEL ch01 TYPE disk ;
ALLOCATE CHANNEL ch02 TYPE disk ;
ALLOCATE CHANNEL ch03 TYPE disk ;
backup incremental level 0 tag = bkpL0_proddb
format
   
   '/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/backup/bkp_%d_%T_%s_%p_%U'
database;
sql 'alter system archive log current';
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
RELEASE CHANNEL ch02;
RELEASE CHANNEL ch03;
   
ALLOCATE CHANNEL ch00 TYPE disk;
backup tag = contf_prodb
format
   
   '/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/backup/contf_%d_%T_%s_%p_%U'
current controlfile;
RELEASE CHANNEL ch00;
   
ALLOCATE CHANNEL ch00 TYPE disk;
ALLOCATE CHANNEL ch01 TYPE disk;
backup tag = arch_prodb
format
   
   '/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/archive/arc_%d_%T_%s_%p_%U'
check logical archivelog all delete input;
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
}
   
script backup incremental:
   
run {
ALLOCATE CHANNEL ch00 TYPE disk ;
ALLOCATE CHANNEL ch01 TYPE disk ;
backup incremental level 1 tag = bkpL1_proddb
format
   
   '/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/backup/bkp_%d_%T_%s_%p_%U'
database;
sql 'alter system archive log current';
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
   
ALLOCATE CHANNEL ch00 TYPE disk;
backup tag = contf_prodb
format
   
   '/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/backup/contf_%d_%T_%s_%p_%U'
current controlfile;
RELEASE CHANNEL ch00;
   
ALLOCATE CHANNEL ch00 TYPE disk;
ALLOCATE CHANNEL ch01 TYPE disk;
backup tag = arch_prodb
format
   
   '/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/archive/arc_%d_%T_%s_%p_%U'
check logical archivelog all delete input;

[oracle_br] Re: Performance RMAN

2013-02-16 Por tôpico netodba
Opa Wadson vlw pela resposta.

qual seria o parametro pra mudar?

--- Em oracle_br@yahoogrupos.com.br, Wadson Ramon wramon@... escreveu

 Neto vc precisa utilizar a compactação HIGH  de cara eu já te falo se vc
 não usa-la o tempo de backup já vai cair sensivelmente .
 Vc pode alocar mais canais e fazer um teste para ver se melhora em alguns
 casos sim.
 
 vlw.
 
 
 2013/2/16 netodba neto.longhi@...
 
  **
 
 
  Fala Pessoal,
 
  migrei uma base de dados 2.5 TB 10G pro 11.2.0.3, o meu problema é que o
  backup rman ta demorando de mais.
 
  Ambiente:
  S.O: RH 6.3
  RAC 4 nós Oracle 11.2.0.3 em ASM
  Tamanho da base: 2.5 Tb
  Local onde é armazenado o backup é em acfs compartilhado com os 4 nós.
  O backup é executado apenas na instancia 1.
 
  política de backup:
  Domingo 1:00 da manhã roda um full.
  Segunda a sabado as 1:00 roda o incremental.
  Todo dia de 8:00 as 18:00 roda o de archivelog.
 
  compigurações do rman:
 
  CONFIGURE RETENTION POLICY TO REDUNDANCY 7;
  CONFIGURE BACKUP OPTIMIZATION ON;
  CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
  CONFIGURE CONTROLFILE AUTOBACKUP ON;
  CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; #
  default
  CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO COMPRESSED
  BACKUPSET;
  CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
  CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
  CONFIGURE MAXSETSIZE TO UNLIMITED; # default
  CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
  CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
  CONFIGURE COMPRESSION ALGORITHM 'HIGH' OPTIMIZE FOR LOAD TRUE AS OF
  RELEASE 'DEFAULT';
  CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
  CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+DG02_R6/snapcf_PRODDB.f';
 
  script de backup full:
 
  run {
  ALLOCATE CHANNEL ch00 TYPE disk ;
  ALLOCATE CHANNEL ch01 TYPE disk ;
  ALLOCATE CHANNEL ch02 TYPE disk ;
  ALLOCATE CHANNEL ch03 TYPE disk ;
  backup incremental level 0 tag = bkpL0_proddb
  format
  '/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/backup/bkp_%d_%T_%s_%p_%U'
  database;
  sql 'alter system archive log current';
  RELEASE CHANNEL ch00;
  RELEASE CHANNEL ch01;
  RELEASE CHANNEL ch02;
  RELEASE CHANNEL ch03;
 
  ALLOCATE CHANNEL ch00 TYPE disk;
  backup tag = contf_prodb
  format
  '/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/backup/contf_%d_%T_%s_%p_%U'
  current controlfile;
  RELEASE CHANNEL ch00;
 
  ALLOCATE CHANNEL ch00 TYPE disk;
  ALLOCATE CHANNEL ch01 TYPE disk;
  backup tag = arch_prodb
  format
  '/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/archive/arc_%d_%T_%s_%p_%U'
  check logical archivelog all delete input;
  RELEASE CHANNEL ch00;
  RELEASE CHANNEL ch01;
  }
 
  script backup incremental:
 
  run {
  ALLOCATE CHANNEL ch00 TYPE disk ;
  ALLOCATE CHANNEL ch01 TYPE disk ;
  backup incremental level 1 tag = bkpL1_proddb
  format
  '/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/backup/bkp_%d_%T_%s_%p_%U'
  database;
  sql 'alter system archive log current';
  RELEASE CHANNEL ch00;
  RELEASE CHANNEL ch01;
 
  ALLOCATE CHANNEL ch00 TYPE disk;
  backup tag = contf_prodb
  format
  '/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/backup/contf_%d_%T_%s_%p_%U'
  current controlfile;
  RELEASE CHANNEL ch00;
 
  ALLOCATE CHANNEL ch00 TYPE disk;
  ALLOCATE CHANNEL ch01 TYPE disk;
  backup tag = arch_prodb
  format
  '/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/archive/arc_%d_%T_%s_%p_%U'
  check logical archivelog all delete input;
  RELEASE CHANNEL ch00;
  RELEASE CHANNEL ch01;
 
  vcs podem me ajudar??
  perguntem o que quiserem, mandei select's na view pra eu executar.
 
   
 
 
 
 [As partes desta mensagem que não continham texto foram removidas]





[oracle_br] Re: Performance RMAN

2013-02-16 Por tôpico netodba
Vlw pessoal

ja mudei a compressão pra BASIC, aparentemente esta mas rapido mesmo.
Vlw


--- Em oracle_br@yahoogrupos.com.br, Wadson Ramon wramon@... escreveu

 Você pode mudar para assim.
 CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE
 FOR LOAD TRUE ;
 
 blz
 
 
 Em 16 de fevereiro de 2013 15:48, Vitor Junior vitorjr81@...escreveu:
 
  Experimentou usar compressed?
  Em 16/02/2013 14:09, netodba neto.longhi@... escreveu:
 
   **
  
  
   Fala Pessoal,
  
   migrei uma base de dados 2.5 TB 10G pro 11.2.0.3, o meu problema é que o
   backup rman ta demorando de mais.
  
   Ambiente:
   S.O: RH 6.3
   RAC 4 nós Oracle 11.2.0.3 em ASM
   Tamanho da base: 2.5 Tb
   Local onde é armazenado o backup é em acfs compartilhado com os 4 nós.
   O backup é executado apenas na instancia 1.
  
   política de backup:
   Domingo 1:00 da manhã roda um full.
   Segunda a sabado as 1:00 roda o incremental.
   Todo dia de 8:00 as 18:00 roda o de archivelog.
  
   compigurações do rman:
  
   CONFIGURE RETENTION POLICY TO REDUNDANCY 7;
   CONFIGURE BACKUP OPTIMIZATION ON;
   CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
   CONFIGURE CONTROLFILE AUTOBACKUP ON;
   CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; #
   default
   CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO COMPRESSED
   BACKUPSET;
   CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
   CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
   CONFIGURE MAXSETSIZE TO UNLIMITED; # default
   CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
   CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
   CONFIGURE COMPRESSION ALGORITHM 'HIGH' OPTIMIZE FOR LOAD TRUE AS OF
   RELEASE 'DEFAULT';
   CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
   CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+DG02_R6/snapcf_PRODDB.f';
  
   script de backup full:
  
   run {
   ALLOCATE CHANNEL ch00 TYPE disk ;
   ALLOCATE CHANNEL ch01 TYPE disk ;
   ALLOCATE CHANNEL ch02 TYPE disk ;
   ALLOCATE CHANNEL ch03 TYPE disk ;
   backup incremental level 0 tag = bkpL0_proddb
   format
  
  '/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/backup/bkp_%d_%T_%s_%p_%U'
   database;
   sql 'alter system archive log current';
   RELEASE CHANNEL ch00;
   RELEASE CHANNEL ch01;
   RELEASE CHANNEL ch02;
   RELEASE CHANNEL ch03;
  
   ALLOCATE CHANNEL ch00 TYPE disk;
   backup tag = contf_prodb
   format
  
  '/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/backup/contf_%d_%T_%s_%p_%U'
   current controlfile;
   RELEASE CHANNEL ch00;
  
   ALLOCATE CHANNEL ch00 TYPE disk;
   ALLOCATE CHANNEL ch01 TYPE disk;
   backup tag = arch_prodb
   format
  
  '/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/archive/arc_%d_%T_%s_%p_%U'
   check logical archivelog all delete input;
   RELEASE CHANNEL ch00;
   RELEASE CHANNEL ch01;
   }
  
   script backup incremental:
  
   run {
   ALLOCATE CHANNEL ch00 TYPE disk ;
   ALLOCATE CHANNEL ch01 TYPE disk ;
   backup incremental level 1 tag = bkpL1_proddb
   format
  
  '/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/backup/bkp_%d_%T_%s_%p_%U'
   database;
   sql 'alter system archive log current';
   RELEASE CHANNEL ch00;
   RELEASE CHANNEL ch01;
  
   ALLOCATE CHANNEL ch00 TYPE disk;
   backup tag = contf_prodb
   format
  
  '/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/backup/contf_%d_%T_%s_%p_%U'
   current controlfile;
   RELEASE CHANNEL ch00;
  
   ALLOCATE CHANNEL ch00 TYPE disk;
   ALLOCATE CHANNEL ch01 TYPE disk;
   backup tag = arch_prodb
   format
  
  '/u01/app/acfsmounts/fradg_orabkplv/bkp/proddb/rman/archive/arc_%d_%T_%s_%p_%U'
   check logical archivelog all delete input;
   RELEASE CHANNEL ch00;
   RELEASE CHANNEL ch01;
  
   vcs podem me ajudar??
   perguntem o que quiserem, mandei select's na view pra eu executar.
  
  
  
 
 
  [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] Re: performance query

2012-01-09 Por tôpico José Laurindo
Bem, não sei se realmente é só esse o SQL em questão (até porque há um 
parêntesis a mais na query que vc nos mostra), mas se REALMENTE é esse mesmo, e 
se realmente é uma tabela o objeto que vc tem e não uma view nem nada assim, ** 
DE FORMA ALGUMA ** é aceitável uma hora como tempo de resposta : veja no 
exemplo abaixo que no meu hardware de casa (win7 Professional de 32 bits, com 
um processador só (dual-core mas um só), com discos SATA, levou cerca de 7 
minutos ok que provavelmente o teu servidor deve estar sendo usado pra 
caramba, tem n outros usuários pra atender, mas tamos falando de um equipamento 
profissional (imagino), com discos SCSI rápidos (talvez até num array RAID, 
provavelmente) e multi-processadores, por mais concorrência que haja eu 
aceitaria no máximo uns 15 ou 20 minutos como tempo de resposta...
 Eu diria pra vc : primeiro, faça um teste como eu fiz, no sqlplus, SEM conexão 
de rede (processando local), E com paralelismo ativado - se não obter tempo na 
casa de 15 a 20 minutos, ou um pouco mais, pra mim tá claro que vc tem um 
problema local aí, talvez extent size inapropriado, talvez hardware não dando 
conta da concorrência,  talvez subsistema de I/O com problemas, talvez algum 
SQL profile ou hints forçando o uso de índice quando o que vc quer é o que eu 
obtive, ie, um suculento table scan com multiblock, ou bug/problema no 
middleware, a ver... Se o teste não retornar algo similar ao que eu obtive, é 
caso pra acionar o DBA do ambiente,m sim, pois algum problema Claro vc teria 
nesse caso...

O meu exemplo, em Oracle 10.2.0.5 EE :


SQL set arraysize 500
SQL set pages 
SQL set autotrace on
sql SET TIMING ON
SQL SELECT * FROM tab_teste_big D
WHERE D.last_DDL_TIME = ADD_MONTHS(SYSDATE, -6 );

...


SYS
WRH$_LATCH_MISSES_SUMMARY_PK
WRH$_LATCH__1284328844_56   55592  55592 INDEX PARTITION
09/01/12 09/01/12 2012-01-09:20:53:39 VALID   N N N

SYS
WRH$_DB_CACHE_ADVICE_PK
WRH$_DB_CAC_1284328844_56   55596  55596 INDEX PARTITION
09/01/12 09/01/12 2012-01-09:20:53:39 VALID   N N N

SYS
WRH$_ROWCACHE_SUMMARY_PK
WRH$_ROWCAC_1284328844_56   55600  55600 INDEX PARTITION
09/01/12 09/01/12 2012-01-09:20:53:39 VALID   N N N

SYS
WRH$_SGASTAT_U
WRH$_SGASTA_1284328844_56   55604  55604 INDEX PARTITION
09/01/12 09/01/12 2012-01-09:20:53:39 VALID   N N N

SYS
WRH$_SYSSTAT_PK
WRH$_SYSSTA_1284328844_56   55608  55608 INDEX PARTITION
09/01/12 09/01/12 2012-01-09:20:53:39 VALID   N N N

SYS
WRH$_PARAMETER_PK
WRH$_PARAME_1284328844_56   55612  55612 INDEX PARTITION
09/01/12 09/01/12 2012-01-09:20:53:39 VALID   N N N

SYS
WRH$_SEG_STAT_PK
WRH$_SEG_ST_1284328844_56   55616  55616 INDEX PARTITION
09/01/12 09/01/12 2012-01-09:20:53:39 VALID   N N N

SYS
WRH$_SERVICE_STAT_PK
WRH$_SERVIC_1284328844_56   55620  55620 INDEX PARTITION
09/01/12 09/01/12 2012-01-09:20:53:40 VALID   N N N

SYS
WRH$_ACTIVE_SESSION_HISTORY_PK
WRH$_ACTIVE_1284328844_56   55624  55624 INDEX PARTITION
09/01/12 09/01/12 2012-01-09:20:53:40 VALID   N N N

SYS
WRH$_TABLESPACE_STAT_PK
WRH$_TABLES_1284328844_56   55628  55628 INDEX PARTITION
09/01/12 09/01/12 2012-01-09:20:53:40 VALID   N N N

SYS
WRH$_OSSTAT_PK
WRH$_OSSTAT_1284328844_56   55632  55632 INDEX PARTITION
09/01/12 09/01/12 2012-01-09:20:53:40 VALID   N N N

SYS
WRH$_SERVICE_WAIT_CLASS
WRH$_SERVIC_1284328844_56   55638  55638 TABLE PARTITION
09/01/12 09/01/12 2012-01-09:20:53:40 VALID   N N N

SYSTEM
TAB_TESTE_BIG
55641  55641 TABLE
09/01/12 09/01/12 2012-01-09:22:35:30 VALID   N N N


67914 linhas selecionadas.

Decorrido: 00:07:53.67

Plano de ExecuþÒo
--
Plan hash value: 2548191689


---

| Id  | Operation| Name  | Rows  | Bytes | Cost (%CPU)| Time
 |TQ  |IN-OUT| PQ Distrib |


---

|   0 | SELECT STATEMENT |   |19M|  1693M| 30947   (2)| 00:0
6:12 ||  ||

|   1 |  PX COORDINATOR  |   |   |   ||
 ||  ||

|   2 |   PX SEND QC (RANDOM)| :TQ1  |19M|  1693M| 30947   (2)| 00:0
6:12 |  Q1,00 | P-S | QC (RAND)  |

|   3 |PX BLOCK ITERATOR |   |19M|  1693M| 30947   (2)| 00:0
6:12 |  Q1,00 | PCWC ||

|*  4 | TABLE ACCESS FULL| TAB_TESTE_BIG |19M|  1693M| 30947   (2)| 00:0
6:12 |  Q1,00 | PCWP ||


---


Predicate Information (identified by operation id):

[oracle_br] Re: Performance inconsistente utilizando o DBLINK

2011-12-27 Por tôpico José Laurindo
  Colega, absolutamente ** não tem mágica ** quando se fala de performance 
degradada : o passo ZERO, inicial, é saber exatamente pelo que o processo está 
esperando, não tem por onde - a tool básica para isso é trace+tkprof, e ver 
quais waits vc está tendo...
 Outra boa possibilidade no OWB seria, já que ele pode gerar um stored PL/SQL 
com a rotina (procedure, normalmente) ,  vc introduzir alguma INSTRUMENTAÇÃO, 
nem que seja coisas simples como adicionar chamadas à 
DBMS_APPLICATION.SET_CLIENT_INFO, tipo :


 .
 dbms_application_info.set_client_info('vou entrar loop em:' 
   || to_char(sysdate, 'hh24:mi:ss')); 
   for r in (select colunachace, outras colunas from tabelas)
   loop
  dbms_application_info.set_client_info('loop1 key#' 
 || r.colunachave 
 || to_char(sysdate, 'hh24:mi:ss'));
  for i in outrocursorbuscandodetalhes do acima 
loop
 dbms_application_info.set_client_info('loop2 key#' 
 || r.colunachave 
 || to_char(sysdate, 'hh24:mi:ss'));
.


 Aí numa outra sessão vc vai consultando a coluna CLIENT_INFO da sessão que 
está executando o PL/SQL
 Outro procedimento muito muito muito aconselhável é vc, no instante que der a 
demora, diversas vezes ir consultando na V$SESSION as colunas de wait, e 
consultar as views de waits, de locks e de estatísticas do sistema, E também 
rodar alguma tool que mostre de modo geral o status do banco 
(statspack/awr/ash, o que vc tiver licenciado na sua versão de banco), que vc 
deve ter umas pistas da causa 
 Eu digo pistas porque há ** DIVERSAS ** causas possíveis para um cenário tal 
qual vc descreve, que vão desde esperas por locks ou latches até simplesmente 
banco temporariamente sobrecarregado , ou até mesmo picos temporários de rede 
...

 []s

  Chiappa

--- Em oracle_br@yahoogrupos.com.br, lrmaross lrmaross@... escreveu

 Amigos preciso de um auxílio.
 
 Tenho um processo de ETL entre dois servidores regionalmente separados 
 trocando informações via DBLINK. Este cenário eu já tenho a mais de 5 meses e 
 até então não vinha tendo problemas de performance. Há alguns dias, meu 
 processo de ETL passou a apresentar grandes problemas de performance e de 
 forma intermitente - o mesmo processo fica excessivamente lento e, quando o 
 re-inicio, tudo volta ao normal. Alguns dias nem temos problemas de 
 performance. 
 Já cheguei a deixar um processo executando durante mais de 5 horas e ele não 
 finalizou e, ao executa-lo novamente ele transcorre naturalmente como e nada 
 ocorresse. Acrescento também que o problema não ocorre sempre no mesmo ponto, 
 ele alterna as tabelas do meu processo de ETL.
 Já coletei estatistica, solicitei uma análise da rede (que esta muito boa), 
 verifiquei indices, alterei parâmetros ARREYSIZE, executei a query criada 
 pelo OWB via SQLPLUS, via TOAD, e a lentidão se manteve igual. Abri um 
 chamado na ORACLE e a resposta que obtive foi de que deveria ser problema de 
 rede. Analisando a parte FISICA da rede não identificamos nada que pudesse 
 estar comprometendo a performance, na realidade a rede esta bem tranquila no 
 momento que os processos executam. 
 
 O que pode estar acontecendo?
 
 Obrigado.
 
 Luis R.





[oracle_br] Re: Performance inconsistente utilizando o DBLINK

2011-12-27 Por tôpico José Laurindo
 Ah, detalhe importantíssimo - se o passo zero é saber pelo que o banco está 
procurando, o passo 1 na sequência é obter info dos SQLs mais importantes, 
sendo principalmente :

 - o plano de execução ** REAL ** dos SQLs mais importantes da rotina (tirados 
da V$SQL_PLAN e correlatas)

 - as estatísticas de execução dos SQLs (tal como tempo gasto, linhas linhas , 
etc), que vc obtém na V$SQL

 Comparando essas infos de uma execução ruim com uma eventual execução boa 
certamente deve ser esclarecedor...

 []s

   Chiappa

--- Em oracle_br@yahoogrupos.com.br, José Laurindo jlchiappa@... escreveu

   Colega, absolutamente ** não tem mágica ** quando se fala de performance 
 degradada : o passo ZERO, inicial, é saber exatamente pelo que o processo 
 está esperando, não tem por onde - a tool básica para isso é trace+tkprof, e 
 ver quais waits vc está tendo...
  Outra boa possibilidade no OWB seria, já que ele pode gerar um stored PL/SQL 
 com a rotina (procedure, normalmente) ,  vc introduzir alguma INSTRUMENTAÇÃO, 
 nem que seja coisas simples como adicionar chamadas à 
 DBMS_APPLICATION.SET_CLIENT_INFO, tipo :
 
 
  .
  dbms_application_info.set_client_info('vou entrar loop em:' 
|| to_char(sysdate, 'hh24:mi:ss')); 
for r in (select colunachace, outras colunas from tabelas)
loop
   dbms_application_info.set_client_info('loop1 key#' 
  || r.colunachave 
  || to_char(sysdate, 'hh24:mi:ss'));
   for i in outrocursorbuscandodetalhes do acima 
 loop
  dbms_application_info.set_client_info('loop2 key#' 
  || r.colunachave 
  || to_char(sysdate, 'hh24:mi:ss'));
 .
 
 
  Aí numa outra sessão vc vai consultando a coluna CLIENT_INFO da sessão que 
 está executando o PL/SQL
  Outro procedimento muito muito muito aconselhável é vc, no instante que der 
 a demora, diversas vezes ir consultando na V$SESSION as colunas de wait, e 
 consultar as views de waits, de locks e de estatísticas do sistema, E também 
 rodar alguma tool que mostre de modo geral o status do banco 
 (statspack/awr/ash, o que vc tiver licenciado na sua versão de banco), que vc 
 deve ter umas pistas da causa 
  Eu digo pistas porque há ** DIVERSAS ** causas possíveis para um cenário tal 
 qual vc descreve, que vão desde esperas por locks ou latches até simplesmente 
 banco temporariamente sobrecarregado , ou até mesmo picos temporários de rede 
 ...
 
  []s
 
   Chiappa
 
 --- Em oracle_br@yahoogrupos.com.br, lrmaross lrmaross@ escreveu
 
  Amigos preciso de um auxílio.
  
  Tenho um processo de ETL entre dois servidores regionalmente separados 
  trocando informações via DBLINK. Este cenário eu já tenho a mais de 5 meses 
  e até então não vinha tendo problemas de performance. Há alguns dias, meu 
  processo de ETL passou a apresentar grandes problemas de performance e de 
  forma intermitente - o mesmo processo fica excessivamente lento e, quando o 
  re-inicio, tudo volta ao normal. Alguns dias nem temos problemas de 
  performance. 
  Já cheguei a deixar um processo executando durante mais de 5 horas e ele 
  não finalizou e, ao executa-lo novamente ele transcorre naturalmente como e 
  nada ocorresse. Acrescento também que o problema não ocorre sempre no mesmo 
  ponto, ele alterna as tabelas do meu processo de ETL.
  Já coletei estatistica, solicitei uma análise da rede (que esta muito boa), 
  verifiquei indices, alterei parâmetros ARREYSIZE, executei a query criada 
  pelo OWB via SQLPLUS, via TOAD, e a lentidão se manteve igual. Abri um 
  chamado na ORACLE e a resposta que obtive foi de que deveria ser problema 
  de rede. Analisando a parte FISICA da rede não identificamos nada que 
  pudesse estar comprometendo a performance, na realidade a rede esta bem 
  tranquila no momento que os processos executam. 
  
  O que pode estar acontecendo?
  
  Obrigado.
  
  Luis R.
 





[oracle_br] Re: Performance IS NULL

2009-11-26 Por tôpico jlchiappa
Bem, na verdade não sei se pode se chamar de gambiarra, já que o fato do índice 
b*tree no bd Oracle não indexar valores nulos é padrão, é uma característica 
técnica documentada e sempre presente, não é nem de longe bug que precise de 
work-around nem nada assim... Bom, quanto ao problema em questão, acho que 
antes de sair indexando a pessoa TEM que :

1. saber a cardinalidade,ie, QUANTOS registros tem esse cara nulo e quantos não

e

2. extrair o plano de execução real 9e estatísticas de execução, I/Os, tempos, 
etc) dos SQLs com e sem o and coluna is null

Digo isso porque (já que o colega lá optou por Não nos dar a query nem a 
estrutura) de repente pode ser que já haja um índice excelente, e talvez a 
query estava sendo satisfeita só com acesso ao índice, MAS com a adição da 
coluna a mais (que o otimizador ** sabe ** que jamais vai estar no índice por 
ser nula) passou a ser necessária uma visita aos blocos da tabela, o que antes 
não aconteciaNum caso desses, Pode Ser que o novo índice de função seja 
menos eficiente que o índice ideal que já tínhamos antes...  E Mais, tanto Pode 
Ser que os nulls sejam poucos (aí realmente valeria a pena indexar quem é 
nulo), Quanto pode ser que os nulls sejam muitos muitos, aí talvez valha mais a 
pena indexar quem NÃO é nulo (via índice de função que retorna valor só pros 
não nulos), ou até optar por um table scan ... vareia, ok ? Só o colega que 
formulou a pergunta tem os dados TODOS na mão, é mais ou menos como eu falei na 
minha apresentação de CBO - a pessoa TEM que conhecer os dados dela, o ambiente 
dela, pra só aí poder usar o Otimizador na eficiência máxima...

 []s

  Chiappa

--- Em oracle_br@yahoogrupos.com.br, Rosivaldo Ramalho rosiva...@... escreveu

 Em geral se cria um índice baseado em função (usando nvl), e no select
 se utilza a função que você utilizou no índice (where nvl(coluna)..).
 
 Se você já tem um índice na coluna, você pode atualizar os valores
 nulos para um valor que esteja fora da regra do teu negócio, algo no
 ano de 1800/1700, dá um rebuild no índice e pode continuar com o
 select normal, só passando agora essa nova data no lugar do IS NULL.
 
 Essas duas formas são meio que gambiarras, mas eu desconheço outras.
 
 2009/11/26 francisco porfirio francisco.porfi...@...:
  Boa Tarde Pessoal.
 
  Tenho uma consulta que está demorando devido a utilização do IS NULL.(Segue
  parte da consulta)
 
  ...
  and campo_timestamp is null
  ...
  Sei que quando isso é feito não adianta criar um índice para o campo
  testado.
  Alguem sabe uma outra forma de capturar os campos que são nulos sem perder
  tanto a performance?
 
 
  Versão do Oracle: 10.2.0.4.0
  --
  Atenciosamente
  Francisco Porfirio Ribeiro Neto
 
 
  [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
 
 
 
 
 
 
 -- 
 Rosivaldo Azevedo Ramalho
 Consultor Oracle Database / Application Server
 mail/msn: rosiva...@...
 mobile: +55 83 8893 8281
 Oracle Database 10g Certified Professional
 Oracle Application Server 10g Certified Professional





RE: [oracle_br] Re: Performance IS NULL

2009-11-26 Por tôpico Teixeira, Gabriel
Muito interessante as dicas!! 
 
Obrigado!



From: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] On 
Behalf Of jlchiappa
Sent: quinta-feira, 26 de novembro de 2009 18:16
To: oracle_br@yahoogrupos.com.br
Subject: [oracle_br] Re: Performance IS NULL


  

Bem, na verdade não sei se pode se chamar de gambiarra, já que o fato do índice 
b*tree no bd Oracle não indexar valores nulos é padrão, é uma característica 
técnica documentada e sempre presente, não é nem de longe bug que precise de 
work-around nem nada assim... Bom, quanto ao problema em questão, acho que 
antes de sair indexando a pessoa TEM que :

1. saber a cardinalidade,ie, QUANTOS registros tem esse cara nulo e quantos não

e

2. extrair o plano de execução real 9e estatísticas de execução, I/Os, tempos, 
etc) dos SQLs com e sem o and coluna is null

Digo isso porque (já que o colega lá optou por Não nos dar a query nem a 
estrutura) de repente pode ser que já haja um índice excelente, e talvez a 
query estava sendo satisfeita só com acesso ao índice, MAS com a adição da 
coluna a mais (que o otimizador ** sabe ** que jamais vai estar no índice por 
ser nula) passou a ser necessária uma visita aos blocos da tabela, o que antes 
não aconteciaNum caso desses, Pode Ser que o novo índice de função seja 
menos eficiente que o índice ideal que já tínhamos antes... E Mais, tanto Pode 
Ser que os nulls sejam poucos (aí realmente valeria a pena indexar quem é 
nulo), Quanto pode ser que os nulls sejam muitos muitos, aí talvez valha mais a 
pena indexar quem NÃO é nulo (via índice de função que retorna valor só pros 
não nulos), ou até optar por um table scan ... vareia, ok ? Só o colega que 
formulou a pergunta tem os dados TODOS na mão, é mais ou menos como eu falei na 
minha apresentação de CBO - a pessoa TEM que conhecer os dados dela, o ambiente 
dela, pra só aí poder usar o Otimizador na eficiência máxima...

[]s

Chiappa

--- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br , 
Rosivaldo Ramalho rosiva...@... escreveu

 Em geral se cria um índice baseado em função (usando nvl), e no select
 se utilza a função que você utilizou no índice (where nvl(coluna)..).
 
 Se você já tem um índice na coluna, você pode atualizar os valores
 nulos para um valor que esteja fora da regra do teu negócio, algo no
 ano de 1800/1700, dá um rebuild no índice e pode continuar com o
 select normal, só passando agora essa nova data no lugar do IS NULL.
 
 Essas duas formas são meio que gambiarras, mas eu desconheço outras.
 
 2009/11/26 francisco porfirio francisco.porfi...@...:
  Boa Tarde Pessoal.
 
  Tenho uma consulta que está demorando devido a utilização do IS NULL.(Segue
  parte da consulta)
 
  ...
  and campo_timestamp is null
  ...
  Sei que quando isso é feito não adianta criar um índice para o campo
  testado.
  Alguem sabe uma outra forma de capturar os campos que são nulos sem perder
  tanto a performance?
 
 
  Versão do Oracle: 10.2.0.4.0
  --
  Atenciosamente
  Francisco Porfirio Ribeiro Neto
 
 
  [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/ 
  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/ http://www.oraclebr.com.br/ 
  -- Links do Yahoo! 
  Grupos
 
 
 
 
 
 
 -- 
 Rosivaldo Azevedo Ramalho
 Consultor Oracle Database / Application Server
 mail/msn: rosiva...@...
 mobile: +55 83 8893 8281
 Oracle Database 10g Certified Professional
 Oracle Application Server 10g Certified Professional







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



[oracle_br] Re: Performance com Synonym Privados

2009-10-20 Por tôpico jlchiappa
Mais um aqui a favor de PRIVATE SYNONYMS, se tiver que ser usados sinônimos... 
Em 
http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:7555433442177
 o autor fala sobre eles, discutindo algumas das suas vantagens em performance, 
mas o mal maior dos objetos e/ou grants públicos é conceitual na segurança : o 
bd Oracle Não Tem o conceito de DENY ou de EXCEPTION de um privilégio, se vc 
fizer GRANT qquer TO PUBLIC, ou CREATE PUBLIC qquercoisa, absolutamente 
QUALQUER UM, por mais ralé e xumbrega que seja, vai obter o grant, vai acessar 
o objeto criado, NÂO TEM COMO dizer 'ah, o zezinho e o toizinho são exceções ao 
PUBLIC', não Não acho de forma NENHUMA minimamente saudável pra segurança 
ter seja o que for acessável por qquer zémané mixuruca do banco... 

 []s
 
  Chiappa
  

--- Em oracle_br@yahoogrupos.com.br, Marcos Fontana fontana.mar...@... 
escreveu

 Funciona muito bem,
 
 Temos isso aqui em 80 instâncias de produção sem nenhum problema.
 
 Atenciosamente,
 
 Marcos Fontana
 DBA Oracle
 
 2009/10/20 francisco porfirio francisco.porfi...@...
 
 
 
  Bom Dia Pessoal,
 
  Estou querendo colocar minha aplicação em um schema que possui apenas
  synonyms privados com permissão de insert, delete, update e select, com o
  objetivo de esconder totalmente a senha do schema principal.
 
  Alguém sabe informar sobre a performance deste tipo de synonyms em ambiente
  de produção, onde a aplicação manipula dados através dele?
  E em ambiente RAC ele funciona normalmente?
 
  Versão do oracle 10.2.4.0.
 
  --
  Atenciosamente
  Francisco Porfirio Ribeiro Neto
 
  [As partes desta mensagem que não continham texto foram removidas]
 
   
 
 
 
 [As partes desta mensagem que não continham texto foram removidas]





[oracle_br] Re: Performance X case-sensitive

2009-02-10 Por tôpico gibajr
--- Em oracle_br@yahoogrupos.com.br, gibajr gib...@... escreveu

 Colegas,
 
 Preciso desabilitar o case-sensitive, ou criar indice CONTEXT, em 
 campos de algumas tabelas na minha base. A dúvida é se isso terá 
 impacto no desempenho das consultas realizadas nesta tabela.
 
 Grato,
 
 Gilberto



Bem,

Desculpem não ter informado qual é o banco.
Oracle Enterprise 10.2.1 rodando numa máquina com 3 processadores e 8 
GB de memória, linux RedHat e com storage de dados.

Mais detalhes do Problema:
Recebi o pedido do gerente de desenvolvimento querendo que toda a 
base fosse case-insensitive. Assim em qualquer campo em qulquer 
tabela pudesse fazer uma busca sem se preocupar se existe um índice 
case-insensitive.

A Base: 
Nesta base as chaves primárias das tabelas são geradas pela função 
SYS_GUID do Oracle, que gera um valor em formato string de 16 bytes 
aleatórios e único.

Minha dúvida: 
Se existir uma forma de desabilitar o case-sensitive do banco, será 
que vou ter uma perda de performance na base toda? Compo todas as 
chaves são CHAR(36) eles também serão case-insensitive e isso pode 
prejudicar o desempenho dos índices? É uma boa prática, se possível, 
desabilitar o case-sensitive da base?

Obrigado a todos,
Gilberto 



[oracle_br] Re: Performance X case-sensitive

2009-02-09 Por tôpico jlchiappa
Colega, isso TOTALMENTE DEPENDE da versão EXATA de banco que vc tem E
dos detalhes da estratégia que vc vai adotar, mas como ambos os pontos
vc só pra variar não nos dá, o que podemos dizer é :

 a) SE for banco 10g, vc tem a opção de usar characterset CI (case
insensitive), em termos de performance a penalidade deve ser muito
leve, apenas uma pequena porção de CPU a mais sendo usada para a
conversão de characterset, já que certamente não deve ser CI o default
usado pelo seu cliente

 b) em qquer versão de banco que suporte, índice de contexto ** não **
faz muito sentido, creio, pois ele serve mais para pesquisas com
operadores especiais tipo CONTAINS, imagino que vc adotaria como
estratégia uma função comum como UPPER nos seus SQLs, aí o índice a
ser adotada deve ser um COM A FUNÇÃO ESCOLHIDA (função UPPER no meu
exemplo), seria um índice b*tree DE FUNÇÃO portanto. A interferência
de índices b*tree é primeiro que eles tem que ser atualizados a cada
DML (o que PODE ser significativo se a sua máquina já estiver
atolada, quaisquer processos extras induzem a mais concorrência) , e
segundo o fato de que outros SQLs podem talvez vir a adotar esse
índice em detrimento de outros, o que PODE causar um plano diferente

 c) as opções de case-insentive que se adotava antigamente a nível de
banco , antes do 10g com CI e antes do índice de função (ie, trigger
 que alimentava uma coluna não-acessível ao usuário que continha o
UPPER da coluna normal), tem impacto diretamente relativo e
proporcional à quantidade de colunas a manter 

 d) a possibilidade de se ter o CI feito pela aplicação (propriedade
Case-restriction num item dum bloco Forms, por exemplo, para
aplicaçãoes desenvolvidas em Oracle Forms, mas diversas outras
tools/linguagens tem opções do tipo) é a que traz o menor impacto no
banco em si, o impacto pass a ser na camada extra-banco do aplicativo

[]s

 Chiappa
--- Em oracle_br@yahoogrupos.com.br, gibajr gib...@... escreveu

 Colegas,
 
 Preciso desabilitar o case-sensitive, ou criar indice CONTEXT, em 
 campos de algumas tabelas na minha base. A dúvida é se isso terá 
 impacto no desempenho das consultas realizadas nesta tabela.
 
 Grato,
 
 Gilberto





[oracle_br] Re: Performance e Tunning

2008-12-12 Por tôpico rei_do_delphi
Jefferson, boa tarde! 

Acredito, que o melhor caminho seria você se basear no Manual 
Concepts e no de Tunning da própria Oracle.

Mas, existem livros muito bons também, onde mostram isso sendo 
aplicado de verdade! Entre eles, posso te dar como referência:

Expert Oracle Database Architecture - Apress - Thyomas Kyte

Oracle Wait Interface - A Pratical Guide for Performance and Tuning -
 Oracle Press - O autor é o Gopalash ( ou algo assim)

e o famoso Optimizing Oracle Performance do Milsap - O´Reilley.

Estes dois de baixo você encontra no site:

www.pdfchm.com == só se registrar, quando achar o link do livro que 
deseja, não clique em cima foto. Procure logo abaixo, bem pequeno um 
link para fazer login.

Espero ter ajudado. Abraços,



--- Em oracle_br@yahoogrupos.com.br, Yahoo_Jefferson 
jefferson_s...@... escreveu

 Bom dia à todos,
 
 Estou finalizando minha pós graduação em Banco de Dados na Fesp-
Pr, em 
 Curitiba, e comecei o meu projeto final que vai ser sobre 
performance e 
 tunning no sistema onde trabalho.
 
 Gostaria de saber se o pessoal do grupo poderia me indicar alguns 
 livros, sites, etc, para que eu possa estar desenvolvendo a 
 fundamentação teórica da minha monografia.
 
 Agradeço desde já.
 
 Jefferson Sela.





Re: [oracle_br] Re: Performance e Tunning

2008-12-12 Por tôpico Yahoo_Jefferson
Boa tarde,

Só de ter dado essas referências vc já ajudou sim!!

Muito Obrigado e Boas Festas de Fim de Ano

Att,

Jefferson Sela


*De:* rei_do_delphi brunomaximom...@hotmail.com
*Data:* 12/12/2008 1:04:07 PM -0300
*Para:* oracle_br@yahoogrupos.com.br
*Assunto:* [oracle_br] Re: Performance e Tunning

 Jefferson, boa tarde!

 Acredito, que o melhor caminho seria você se basear no Manual
 Concepts e no de Tunning da própria Oracle.

 Mas, existem livros muito bons também, onde mostram isso sendo
 aplicado de verdade! Entre eles, posso te dar como referência:

 Expert Oracle Database Architecture - Apress - Thyomas Kyte

 Oracle Wait Interface - A Pratical Guide for Performance and Tuning -
 Oracle Press - O autor é o Gopalash ( ou algo assim)

 e o famoso Optimizing Oracle Performance do Milsap - O´Reilley.

 Estes dois de baixo você encontra no site:

 www.pdfchm.com == só se registrar, quando achar o link do livro que
 deseja, não clique em cima foto. Procure logo abaixo, bem pequeno um
 link para fazer login.

 Espero ter ajudado. Abraços,

 --- Em oracle_br@yahoogrupos.com.br 
 mailto:oracle_br%40yahoogrupos.com.br, Yahoo_Jefferson
 jefferson_s...@... escreveu
 
  Bom dia à todos,
 
  Estou finalizando minha pós graduação em Banco de Dados na Fesp-
 Pr, em
  Curitiba, e comecei o meu projeto final que vai ser sobre
 performance e
  tunning no sistema onde trabalho.
 
  Gostaria de saber se o pessoal do grupo poderia me indicar alguns
  livros, sites, etc, para que eu possa estar desenvolvendo a
  fundamentação teórica da minha monografia.
 
  Agradeço desde já.
 
  Jefferson Sela.
 

  



Re: [oracle_br] Re: Performance dos relatorios-ajuda

2008-10-28 Por tôpico Kenia Milene
Olha ... acho que a questao hardware tb é consideravel viu ...
Muitas vezes voce tem um banco com uma carga muito alta de acesso com um
hardware precario 

Kenia

2008/10/27 Ricardo Portilho Proni [EMAIL PROTECTED]

   Este alter session está restrito a esta sessão apenas.
 Se vc colocar no Report, todo mundo vai gerar trace, então é melhor
 gerar só com voce no sistema.

 Com poucos usuários no banco, a performance será melhor, mas vc ainda
 verá o problema raiz, pode acreditar.


 Ricardo Portilho Proni
 Coordenador de Bancos de Dados - Solvo S/A
 - Oracle Database 10g Administrator Certified Professional (OCP)
 - Microsoft Certified Professional (MCP)
 - Microsoft Certified Technologt Specialist: SQL Server 2005 (MCTS)

 Em Seg, 2008-10-27 às 21:25 +, urubullino escreveu:

  Caro Ricardo,
  antes de tudo obrigado.
  Nao seria interessante colocar o trace no
  na trigger 'before report' do Reports?
  Poderia ficar assim?
  srw.do_sql('ALTER SESSION SET TRACEFILE_IDENTIFIER =
  RelatorioLentoQueSoEle' );
  srw.do_sql('ALTER SESSION SET TIMED_STATISTICS = TRUE');
  srw.do_sql('ALTER SESSION SET EVENTS 10046 trace name context
  forever, level 12);
 
  alguma coisa no 'after report' ?
 
  Uma pergunta...Esse alter session está restrito ao usuario solicitante
  do relatorio? Pq nao adiantaria tanto se tiver outros usuarios tambem
  fazendo consultas no banco.
 
  Falando em acessos, suponho que poucos usuarios acessando o banco, a
  performance seria melhor; enquanto se muitos usuarios estiverem
  acessando , seria pior . Como analisar isso? Eu teria que fazer o
  trace depois do horario de expediente, quando ninguem estaria usando o
  sistema? E depois, como avaliar se a quantidade de acessos estaria
  compromentando a performance. E mais tarde, como melhorar isso, caso
  seja comprovado esse problema?
 
  Obrigado mais uma vez e desculpe por tantas duvidas
 
  --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 Ricardo Portilho Proni
  [EMAIL PROTECTED] escreveu
  
   Oi.
  
   Como um colega já disse aqui, antes de solucionar o problema de
   performance, você precisa ter certeza onde o TEMPO deste relatório
  está
   sendo gasto.
  
   Você consegue rodar este relatório com trace?
   Para isso, uma das formas é colocar isso antes do SELECT que faz
  este
   relatório:
  
   ALTER SESSION SET TRACEFILE_IDENTIFIER = 'RelatorioLentoQueSoEle';
   ALTER SESSION SET TIMED_STATISTICS = TRUE;
   ALTER SESSION SET EVENTS '10046 trace name context forever, level
  12';
  
   Depois que ele terminar, procure pelo arquivo com
  RelatorioLentoQueSoEle
   no nome, e execute:
  
   tkprof arquivo
  
   E coloque o resultado aqui pra gente.
  
  
  
   Ricardo Portilho Proni
   Coordenador de Bancos de Dados - Solvo S/A
   - Oracle Database 10g Administrator Certified Professional (OCP)
   - Microsoft Certified Professional (MCP)
   - Microsoft Certified Technologt Specialist: SQL Server 2005 (MCTS)
  
  
  
  
   Em Sáb, 2008-10-25 às 16:30 +, urubullino escreveu:
Oi pra todos.
não conheco muita coisa de oracle mas aqui vai um problema que
  nunca
deixou o sistema em que trabalho...
Temos uma aplicacao com inumeras tabelas e muuuiitos registros.
  Usamos
o Oracle Reports e em muitos casos os relatórios demoram uma
eternidade para serem executados, em torno de HORAS...
Por pesquisa cheguei a conclusao que uma view materializada
  poderia
resolver o assunto , o Report iria acessar essa view . Mas o
  usuario
quer ver essa informacao quase que instantaneamente quando a mesma
  é
inserida ou modificada. A view materialized seria mesmo a melhor
  opcao
ou teria outra, mesmo com ferramentas de terceiros ?
Para dar uma acelerada ainda maior , também estou estudando outros
geradores de relatorios que possam executar a tarefa mais rapido
  que o
Oracle Reports... Alguma dica?
   
Obrigado a todos.
   
   
   
   
   
   
  
  
   [As partes desta mensagem que não continham texto foram removidas]
  
 
 
 
 
 
 

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

  




-- 
Kenia Milene C. Galiego
DataBase Administrator
Oracle / PostgreSQL / MySql / SQL Server
Email: [EMAIL PROTECTED]
Blog: http://keniamilene.wordpress.com


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



[oracle_br] Re: Performance dos relatorios-ajuda

2008-10-27 Por tôpico urubullino
Caro Eduardo , como vc pode ter visto as mensagens foram mandadas em
horarios diferentes. Estava mandando a mensagem e ela nao aparecia na
listagem. Hoje é  aprimeira vez que a vi aqui.
De qq forma desculpe o transtorno .

Falando sobre o assunto, o Reports que uso é antigo , vesao 3 se nao
me engano, mas acho que vamos mudar para 9. Perguntei sobre a troca de
ferramenta porque tinha um consultor que aqui na empresa e falava que
o Reports perde um certo tempo construindo o layout. Já o Discoverer
(exemplo dado por ele) executa isso muito mais rapido, porém essa
ferramenta é muito limitada nessa parte de layout.
Teria como me enviar alguma pagina que dê dicas de como realizar o
trace. Como disse sou leigo em Oracle.

Muito obrigado pela ajuda.





--- Em oracle_br@yahoogrupos.com.br, Claro, Eduardo
[EMAIL PROTECTED] escreveu

 Amigo,
 
 Acho que uma primeira dica seria mandar apenas um e-mail, e não três
com o mesmo conteúdo e títulos diferentes como você fez. Isso acaba
poluindo as mensagens do grupo, que já são muitas, ok? ;-)
 
 Se os seus relatórios estão com esta performance tão ruim, é muito
provável que recaia em um ou mais dos seguintes itens:
 
 1. Queries mal-escritas dentro dos relatórios. Podem ser consultas
que evitam o uso de índices (modo de escrita da query), ou lêem mais
do que o necessário (falta de restrições), etc, etc.
 
 2. Falta de objetos de performance no banco de dados (especialmente
índices, mas também entram aqui as Views Materializadas).
 
 3. Falta de estatísticas dos objetos, ou estatísticas obsoletas.
 
 Seria interessante gerar trace de algum destes relatórios, formatar
o trace com o tkprof e analisar o resultado. Assim, talvez possamos
ajudar melhor.
 
 Quanto à troca de ferramenta, a princípio não acredito ser o caso. O
Reports é uma ferramenta que te permite escrever as queries dos
relatórios, e portanto a performance será ditada pelo que você
escrever, e não pela ferramenta em si.
 
 []s
 
 --
 Eduardo Claro
 
 -Original Message-
 From: oracle_br@yahoogrupos.com.br
[mailto:[EMAIL PROTECTED] On Behalf Of urubullino
 Sent: sábado, 25 de outubro de 2008 14:30
 To: oracle_br@yahoogrupos.com.br
 Subject: [oracle_br] Performance dos relatorios-ajuda
 
 Oi pra todos.
 não conheco muita coisa de oracle mas aqui vai um problema que nunca
 deixou o sistema em que trabalho...
 Temos uma aplicacao com inumeras tabelas e muuuiitos registros. Usamos
 o Oracle Reports e em muitos casos os relatórios demoram uma
 eternidade para serem executados, em torno de HORAS...
 Por pesquisa cheguei a conclusao que uma view materializada poderia
 resolver o assunto , o Report iria acessar essa view . Mas o usuario
 quer ver essa informacao quase que instantaneamente quando a mesma é
 inserida ou modificada. A view materialized seria mesmo a melhor opcao
 ou teria outra, mesmo com ferramentas de terceiros ?
 Para dar uma acelerada ainda maior , também estou estudando outros
 geradores de relatorios que possam executar a tarefa mais rapido que o
 Oracle Reports... Alguma dica?
 
 Obrigado a todos. 
 
 
 
 

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





[oracle_br] Re: Performance dos relatorios-ajuda

2008-10-27 Por tôpico urubullino
Caro Ricardo,
antes de tudo obrigado.
Nao seria interessante colocar o trace no 
na trigger 'before report' do Reports?
Poderia ficar assim?
srw.do_sql('ALTER SESSION SET TRACEFILE_IDENTIFIER =
RelatorioLentoQueSoEle' );
srw.do_sql('ALTER SESSION SET TIMED_STATISTICS = TRUE');
srw.do_sql('ALTER SESSION SET EVENTS 10046 trace name context
forever, level 12);

alguma coisa no 'after report' ?

Uma pergunta...Esse alter session está restrito ao usuario solicitante
do relatorio? Pq nao adiantaria tanto se tiver outros usuarios tambem
fazendo consultas no banco.

Falando em acessos, suponho que poucos usuarios acessando o banco, a
performance seria melhor; enquanto se muitos usuarios estiverem
acessando , seria pior . Como analisar isso? Eu teria que fazer o
trace depois do horario de expediente, quando ninguem estaria usando o
sistema? E depois, como avaliar se a quantidade de acessos estaria
compromentando a performance. E mais tarde, como melhorar isso, caso
seja comprovado esse problema?

Obrigado mais uma vez e desculpe por tantas duvidas




--- Em oracle_br@yahoogrupos.com.br, Ricardo Portilho Proni
[EMAIL PROTECTED] escreveu

 Oi.
 
 Como um colega já disse aqui, antes de solucionar o problema de
 performance, você precisa ter certeza onde o TEMPO deste relatório está
 sendo gasto.
 
 Você consegue rodar este relatório com trace?
 Para isso, uma das formas é colocar isso antes do SELECT que faz este
 relatório:
 
 ALTER SESSION SET TRACEFILE_IDENTIFIER = 'RelatorioLentoQueSoEle';
 ALTER SESSION SET TIMED_STATISTICS = TRUE;
 ALTER SESSION SET EVENTS '10046 trace name context forever, level 12';
 
 Depois que ele terminar, procure pelo arquivo com RelatorioLentoQueSoEle
 no nome, e execute:
 
 tkprof arquivo
 
 E coloque o resultado aqui pra gente.
 
 
 
 Ricardo Portilho Proni
 Coordenador de Bancos de Dados - Solvo S/A
 - Oracle Database 10g Administrator Certified Professional (OCP)
 - Microsoft Certified Professional (MCP)
 - Microsoft Certified Technologt Specialist: SQL Server 2005 (MCTS)
 
 
 
 
 Em Sáb, 2008-10-25 às 16:30 +, urubullino escreveu:
  Oi pra todos.
  não conheco muita coisa de oracle mas aqui vai um problema que nunca
  deixou o sistema em que trabalho...
  Temos uma aplicacao com inumeras tabelas e muuuiitos registros. Usamos
  o Oracle Reports e em muitos casos os relatórios demoram uma
  eternidade para serem executados, em torno de HORAS...
  Por pesquisa cheguei a conclusao que uma view materializada poderia
  resolver o assunto , o Report iria acessar essa view . Mas o usuario
  quer ver essa informacao quase que instantaneamente quando a mesma é
  inserida ou modificada. A view materialized seria mesmo a melhor opcao
  ou teria outra, mesmo com ferramentas de terceiros ?
  Para dar uma acelerada ainda maior , também estou estudando outros
  geradores de relatorios que possam executar a tarefa mais rapido que o
  Oracle Reports... Alguma dica?
  
  Obrigado a todos. 
  
  
  
  
  
   
 
 
 [As partes desta mensagem que não continham texto foram removidas]





[oracle_br] Re: Performance dos relatorios-ajuda

2008-10-27 Por tôpico urubullino
Opa, esqueci de mais uma:
E como fica a avaliacao de outros quesitos como: rede, maquina,..., na
execução do report? Nao adianta ter tudo perfeito com um servidor
lento ou uma rede horrivel .

Obrigado



--- Em oracle_br@yahoogrupos.com.br, Ricardo Portilho Proni
[EMAIL PROTECTED] escreveu

 Oi.
 
 Como um colega já disse aqui, antes de solucionar o problema de
 performance, você precisa ter certeza onde o TEMPO deste relatório está
 sendo gasto.
 
 Você consegue rodar este relatório com trace?
 Para isso, uma das formas é colocar isso antes do SELECT que faz este
 relatório:
 
 ALTER SESSION SET TRACEFILE_IDENTIFIER = 'RelatorioLentoQueSoEle';
 ALTER SESSION SET TIMED_STATISTICS = TRUE;
 ALTER SESSION SET EVENTS '10046 trace name context forever, level 12';
 
 Depois que ele terminar, procure pelo arquivo com RelatorioLentoQueSoEle
 no nome, e execute:
 
 tkprof arquivo
 
 E coloque o resultado aqui pra gente.
 
 
 
 Ricardo Portilho Proni
 Coordenador de Bancos de Dados - Solvo S/A
 - Oracle Database 10g Administrator Certified Professional (OCP)
 - Microsoft Certified Professional (MCP)
 - Microsoft Certified Technologt Specialist: SQL Server 2005 (MCTS)
 
 
 
 
 Em Sáb, 2008-10-25 às 16:30 +, urubullino escreveu:
  Oi pra todos.
  não conheco muita coisa de oracle mas aqui vai um problema que nunca
  deixou o sistema em que trabalho...
  Temos uma aplicacao com inumeras tabelas e muuuiitos registros. Usamos
  o Oracle Reports e em muitos casos os relatórios demoram uma
  eternidade para serem executados, em torno de HORAS...
  Por pesquisa cheguei a conclusao que uma view materializada poderia
  resolver o assunto , o Report iria acessar essa view . Mas o usuario
  quer ver essa informacao quase que instantaneamente quando a mesma é
  inserida ou modificada. A view materialized seria mesmo a melhor opcao
  ou teria outra, mesmo com ferramentas de terceiros ?
  Para dar uma acelerada ainda maior , também estou estudando outros
  geradores de relatorios que possam executar a tarefa mais rapido que o
  Oracle Reports... Alguma dica?
  
  Obrigado a todos. 
  
  
  
  
  
   
 
 
 [As partes desta mensagem que não continham texto foram removidas]





Re: [oracle_br] Re: Performance dos relatorios-ajuda

2008-10-27 Por tôpico Ricardo Portilho Proni
O trace irá te dizer se o problema é na rede também.

Ricardo Portilho Proni
Coordenador de Bancos de Dados - Solvo S/A
- Oracle Database 10g Administrator Certified Professional (OCP)
- Microsoft Certified Professional (MCP)
- Microsoft Certified Technologt Specialist: SQL Server 2005 (MCTS)




Em Seg, 2008-10-27 às 21:55 +, urubullino escreveu:
 Opa, esqueci de mais uma:
 E como fica a avaliacao de outros quesitos como: rede, maquina,..., na
 execução do report? Nao adianta ter tudo perfeito com um servidor
 lento ou uma rede horrivel .
 
 Obrigado
 
 --- Em oracle_br@yahoogrupos.com.br, Ricardo Portilho Proni
 [EMAIL PROTECTED] escreveu
 
  Oi.
  
  Como um colega já disse aqui, antes de solucionar o problema de
  performance, você precisa ter certeza onde o TEMPO deste relatório
 está
  sendo gasto.
  
  Você consegue rodar este relatório com trace?
  Para isso, uma das formas é colocar isso antes do SELECT que faz
 este
  relatório:
  
  ALTER SESSION SET TRACEFILE_IDENTIFIER = 'RelatorioLentoQueSoEle';
  ALTER SESSION SET TIMED_STATISTICS = TRUE;
  ALTER SESSION SET EVENTS '10046 trace name context forever, level
 12';
  
  Depois que ele terminar, procure pelo arquivo com
 RelatorioLentoQueSoEle
  no nome, e execute:
  
  tkprof arquivo
  
  E coloque o resultado aqui pra gente.
  
  
  
  Ricardo Portilho Proni
  Coordenador de Bancos de Dados - Solvo S/A
  - Oracle Database 10g Administrator Certified Professional (OCP)
  - Microsoft Certified Professional (MCP)
  - Microsoft Certified Technologt Specialist: SQL Server 2005 (MCTS)
  
  
  
  
  Em Sáb, 2008-10-25 às 16:30 +, urubullino escreveu:
   Oi pra todos.
   não conheco muita coisa de oracle mas aqui vai um problema que
 nunca
   deixou o sistema em que trabalho...
   Temos uma aplicacao com inumeras tabelas e muuuiitos registros.
 Usamos
   o Oracle Reports e em muitos casos os relatórios demoram uma
   eternidade para serem executados, em torno de HORAS...
   Por pesquisa cheguei a conclusao que uma view materializada
 poderia
   resolver o assunto , o Report iria acessar essa view . Mas o
 usuario
   quer ver essa informacao quase que instantaneamente quando a mesma
 é
   inserida ou modificada. A view materialized seria mesmo a melhor
 opcao
   ou teria outra, mesmo com ferramentas de terceiros ?
   Para dar uma acelerada ainda maior , também estou estudando outros
   geradores de relatorios que possam executar a tarefa mais rapido
 que o
   Oracle Reports... Alguma dica?
   
   Obrigado a todos. 
   
   
   
   
   
   
  
  
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 
 
 
  


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



Re: [oracle_br] Re: Performance dos relatorios-ajuda

2008-10-27 Por tôpico Ricardo Portilho Proni
Este alter session está restrito a esta sessão apenas.
Se vc colocar no Report, todo mundo vai gerar trace, então é melhor
gerar só com voce no sistema.

Com poucos usuários no banco, a performance será melhor, mas vc ainda
verá o problema raiz, pode acreditar.


Ricardo Portilho Proni
Coordenador de Bancos de Dados - Solvo S/A
- Oracle Database 10g Administrator Certified Professional (OCP)
- Microsoft Certified Professional (MCP)
- Microsoft Certified Technologt Specialist: SQL Server 2005 (MCTS)




Em Seg, 2008-10-27 às 21:25 +, urubullino escreveu:
 Caro Ricardo,
 antes de tudo obrigado.
 Nao seria interessante colocar o trace no 
 na trigger 'before report' do Reports?
 Poderia ficar assim?
 srw.do_sql('ALTER SESSION SET TRACEFILE_IDENTIFIER =
 RelatorioLentoQueSoEle' );
 srw.do_sql('ALTER SESSION SET TIMED_STATISTICS = TRUE');
 srw.do_sql('ALTER SESSION SET EVENTS 10046 trace name context
 forever, level 12);
 
 alguma coisa no 'after report' ?
 
 Uma pergunta...Esse alter session está restrito ao usuario solicitante
 do relatorio? Pq nao adiantaria tanto se tiver outros usuarios tambem
 fazendo consultas no banco.
 
 Falando em acessos, suponho que poucos usuarios acessando o banco, a
 performance seria melhor; enquanto se muitos usuarios estiverem
 acessando , seria pior . Como analisar isso? Eu teria que fazer o
 trace depois do horario de expediente, quando ninguem estaria usando o
 sistema? E depois, como avaliar se a quantidade de acessos estaria
 compromentando a performance. E mais tarde, como melhorar isso, caso
 seja comprovado esse problema?
 
 Obrigado mais uma vez e desculpe por tantas duvidas
 
 --- Em oracle_br@yahoogrupos.com.br, Ricardo Portilho Proni
 [EMAIL PROTECTED] escreveu
 
  Oi.
  
  Como um colega já disse aqui, antes de solucionar o problema de
  performance, você precisa ter certeza onde o TEMPO deste relatório
 está
  sendo gasto.
  
  Você consegue rodar este relatório com trace?
  Para isso, uma das formas é colocar isso antes do SELECT que faz
 este
  relatório:
  
  ALTER SESSION SET TRACEFILE_IDENTIFIER = 'RelatorioLentoQueSoEle';
  ALTER SESSION SET TIMED_STATISTICS = TRUE;
  ALTER SESSION SET EVENTS '10046 trace name context forever, level
 12';
  
  Depois que ele terminar, procure pelo arquivo com
 RelatorioLentoQueSoEle
  no nome, e execute:
  
  tkprof arquivo
  
  E coloque o resultado aqui pra gente.
  
  
  
  Ricardo Portilho Proni
  Coordenador de Bancos de Dados - Solvo S/A
  - Oracle Database 10g Administrator Certified Professional (OCP)
  - Microsoft Certified Professional (MCP)
  - Microsoft Certified Technologt Specialist: SQL Server 2005 (MCTS)
  
  
  
  
  Em Sáb, 2008-10-25 às 16:30 +, urubullino escreveu:
   Oi pra todos.
   não conheco muita coisa de oracle mas aqui vai um problema que
 nunca
   deixou o sistema em que trabalho...
   Temos uma aplicacao com inumeras tabelas e muuuiitos registros.
 Usamos
   o Oracle Reports e em muitos casos os relatórios demoram uma
   eternidade para serem executados, em torno de HORAS...
   Por pesquisa cheguei a conclusao que uma view materializada
 poderia
   resolver o assunto , o Report iria acessar essa view . Mas o
 usuario
   quer ver essa informacao quase que instantaneamente quando a mesma
 é
   inserida ou modificada. A view materialized seria mesmo a melhor
 opcao
   ou teria outra, mesmo com ferramentas de terceiros ?
   Para dar uma acelerada ainda maior , também estou estudando outros
   geradores de relatorios que possam executar a tarefa mais rapido
 que o
   Oracle Reports... Alguma dica?
   
   Obrigado a todos. 
   
   
   
   
   
   
  
  
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 
 
 
  


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



Res: [oracle_br] Re: Performance COBOL x ORACLE 10G

2008-06-15 Por tôpico Anderson Santiago
Tá usando OCI certo, já tentou fazer algum tunning específico sobre esse tipo 
de conexão?
Outra coisa...tudo fica lento ou selects?? insert , update é normal?
Já tentou fazer um trace dessa sessão que demora muito?
Qual o comportamento do servidor quando fica lento?? muito IO ou muito 
processamento?
Att.
Anderson


- Mensagem original 
De: Osmar Junqueira [EMAIL PROTECTED]
Para: oracle_br@yahoogrupos.com.br
Enviadas: Sexta-feira, 13 de Junho de 2008 21:05:06
Assunto: [oracle_br] Re: Performance COBOL x ORACLE 10G


Oi Marcos, obrigado por ter atendido,

então é o seguinte o COBOL é microfocus rodando em um servidor unix 
solaris e estamos rodando estes programas cobol no proprio servidor, 
eles sao precompilados com os drives do oracle em um outro servidor 
de desenvolvimento com a mesma caracteristicas de ORACLE, apenas não 
é ambiente RAC. Segundo o pessoal aqui disseram que estes programas 
estão realmente lentos por conta da fragmentação de memoria, causada 
pelos aplicativos externos (on-line), o fato é que quando aplicamos 
um flush no oracle, ele até roda mais rapido e vai caindo o 
processamento a medida que executamos os programas em sequencia, mas 
não acredito que este pode ser a causa raiz destes problemas de 
lentidão, te digo isto porque a mesma query que rodamos no cobol 
rodamos ela manualmente no SQLPLUS, ela roda muito rapido retornando 
os resultados.

Você acha que isto pode ser um problema de fragmentação de memoria? 
ou alguma parametrização especifica para utilização do COBOL com o 
ORACLE10G.

Grato,

--- Em [EMAIL PROTECTED] os.com.br, Marco Souza [EMAIL PROTECTED] . 
escreveu

 Osmar,
 
 Segundo informações deles, estes programas executavam rapidamente 
usando oracle ?
 Qual tipo de conexão que o cobol usa pra acessar o oracle ? Ele 
roda no servidornbsp; ou no cliente ?
 Pela sua mensagem, suponho que a conexão com o banco não é feita 
pelo oracle client, certo ?
 
 Grande abraço.
 
 
 --- Em ter, 10/6/08, Osmar Junqueira [EMAIL PROTECTED] escreveu:
 De: Osmar Junqueira [EMAIL PROTECTED]
 Assunto: [oracle_br] Performance COBOL x ORACLE 10G
 Para: [EMAIL PROTECTED] os.com.br
 Data: Terça-feira, 10 de Junho de 2008, 20:36
 
 
 
 
 
 
 
 
 
 
 
 Pessoal,
 
 
 
 Estou com serios problemas performance de execução de programas em 
 
 COBOL com o ORACLE10G RAC, estes programas são de terceiros e 
segundo 
 
 informações deles os mesmos programas são executados rapidos em 
outro 
 
 ambiente UNIX. Gostaria de saber se alguem tem problemas com 
programas 
 
 cobol utilizando banco de dados em UNIX solaris, e se existem 
 
 configurações especificas para este tipo de software
 
 
 
 Grato,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Abra sua conta no Yahoo! Mail, o único sem limite de espaço 
para armazenamento!
 http://br.mail. yahoo.com/
 
 [As partes desta mensagem que não continham texto foram removidas]


 


  Abra sua conta no Yahoo! Mail, o único sem limite de espaço para 
armazenamento!
http://br.mail.yahoo.com/

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



[oracle_br] Re: Performance COBOL x ORACLE 10G

2008-06-13 Por tôpico Osmar Junqueira
Oi Marcos, obrigado por ter atendido,

então é o seguinte o COBOL é microfocus  rodando em um servidor unix 
solaris e estamos rodando estes programas cobol no proprio servidor, 
eles sao precompilados com os drives do oracle em um outro servidor 
de desenvolvimento com a mesma caracteristicas de ORACLE, apenas não 
é ambiente RAC. Segundo o pessoal aqui disseram que estes programas 
estão realmente lentos por conta da fragmentação de memoria, causada 
pelos aplicativos externos (on-line), o fato é que quando aplicamos 
um flush no oracle, ele até roda mais rapido e vai caindo o 
processamento a medida que executamos os programas em sequencia, mas 
não acredito que este pode ser a causa raiz destes problemas de 
lentidão, te digo isto porque a mesma query que rodamos no cobol 
rodamos ela manualmente no SQLPLUS, ela roda muito rapido retornando 
os resultados.

Você acha que isto pode ser um problema de fragmentação de memoria? 
ou alguma parametrização especifica para utilização do COBOL com o 
ORACLE10G.

Grato,

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

 Osmar,
 
 Segundo informações deles, estes programas executavam rapidamente 
usando oracle ?
 Qual tipo de conexão que o cobol usa pra acessar o oracle ? Ele 
roda no servidornbsp; ou no cliente ?
 Pela sua mensagem, suponho que a conexão com o banco não é feita 
pelo oracle client, certo ?
 
 Grande abraço.
 
 
 --- Em ter, 10/6/08, Osmar Junqueira [EMAIL PROTECTED] escreveu:
 De: Osmar Junqueira [EMAIL PROTECTED]
 Assunto: [oracle_br] Performance COBOL x ORACLE 10G
 Para: oracle_br@yahoogrupos.com.br
 Data: Terça-feira, 10 de Junho de 2008, 20:36
 
 
 
 
 
 
 
 
 
 
 
 Pessoal,
 
 
 
 Estou com serios problemas performance de execução de programas em 
 
 COBOL com o ORACLE10G RAC, estes programas são de terceiros e 
segundo 
 
 informações deles os mesmos programas são executados rapidos em 
outro 
 
 ambiente UNIX. Gostaria de saber se alguem tem problemas com 
programas 
 
 cobol utilizando banco de dados em UNIX solaris, e se existem 
 
 configurações especificas para este tipo de software
 
 
 
 Grato,
 
 
 
 
   
 
 
 
   

   
   
 
 
 
 
 
 
 
 
   
 
 
   
   
 
 
   Abra sua conta no Yahoo! Mail, o único sem limite de espaço 
para armazenamento!
 http://br.mail.yahoo.com/
 
 [As partes desta mensagem que não continham texto foram removidas]





[oracle_br] Re: :: Performance Oracle 10g

2008-05-30 Por tôpico Alexsandro Haag
Acho que para ajudar é preciso saber onde está o(s) gargalo(s).
Já identificou?

Att.
Alex

--- Em oracle_br@yahoogrupos.com.br, Marcos Pereira - Confederação
SICREDI [EMAIL PROTECTED] escreveu

 Bom Dia senhores,
 
  
 
 Possuímos um BD instalado em uma maquina virtual Linux , porém por
mais que
 a maquina seja boa , os usuários reclamam de performance no banco ,
existe
 alguma sugestão dos senhores para que possamos melhorar a performance do
 mesmo?
 
  
 
 Atenciosamente.
 
  
 
 Marcos V. B. Pereira
 
 Adm. Dados  Objetos / Gestão de Configuração
 
 Desenvolvimento de Software
 
  
 
 
 As informacoes contidas neste e-mail e nos arquivos anexados podem
ser informacoes confidenciais ou privilegiadas. Caso voce nao seja o
destinatario correto, apague o conteudo desta mensagem e notifique o
remetente imediatamente.
 
 
 [As partes desta mensagem que não continham texto foram removidas]





RE: [oracle_br] Re: Performance ( Insert Select via dblink)

2008-05-28 Por tôpico Adriano Cavalcanti
Entao Chiappa, 

com o cursor eu quero garantir que os registros entrem na tabela, pois se der 
algum problema durante a leitura ou no banco , eu consigo inserir apartir do 
ultimo, e não inicio tudo novamente. 



Como resolvo isso ?




To: oracle_br@yahoogrupos.com.br
From: [EMAIL PROTECTED]
Date: Tue, 27 May 2008 22:15:48 +
Subject: [oracle_br] Re: Performance ( Insert Select via dblink)




















Colega, não acompanhei a thread toda, mas de cara já digo : COMMIT

frequente, a cada x registros, * NÃO É *, NUNCA foi e NUNCA

SERÁ a maneira melhor e mais performática de se processar um SQL, em

especial INSERTs,

http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:4951966319022#4955604534852

 mostra exatamente isso E em sendo um único INSERT só com a query,

se a tabela-destino estiver como NOLOGGING, se durante o INSERT vc  vc

desligar as triggers, desativar os índices (NÂO é dropar!!), desativar

(ou ao menos ter as constraints validadas só no commit se der) E usar

um INSERT /*+ APPEND */, aposto um picolé de limão que a performance

assim vai ** HUMILHAR ** , *** ESMAGAR ***, * TRITURAR  a

performance da versão usando CURSOR e COMITs frequentes. No

workshop eu dei um exemplo simples, pequeno, aonde isso era

demonstrado, mas em ambiente de Produção o ganho (em não sendo gerado

quase nenhum redo log, nem undo) via de regra é fenomenalmente maior...



[]s



Chiappa



--- Em oracle_br@yahoogrupos.com.br, Adriano Cavalcanti [EMAIL PROTECTED]

escreveu



 é Isso eu tinha pensado. 

 Achei que tivesse algo mais performatico. 

 

 como tenho 315 mil registro, acho melhor então fazer sempre uma

conta para pegar um quarto de registro  por commit. 

 

 Mas valeu

 

 

 

 To: oracle_br@yahoogrupos.com.br

 From: [EMAIL PROTECTED]

 Date: Tue, 27 May 2008 08:18:24 -0300

 Subject: Re: [oracle_br] Performance ( Insert Select via dblink)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 Adriano, você pode ter um contador dentro do loop do

cursor e quando o contador chegar a 50, você dá o commit e zera o

contador novamente. É isso que você precisa?

 

 Márcio Ricardo Alves da Silva

 

 Programador Pleno

 

 Oracle Certified Associate 9i

 

 * [EMAIL PROTECTED]

 

 

 

 Config Informática Ltda

 

  Av. Eng. Luis Carlos Berrini, 801 - 7º andar

 

  04571-010 - Brooklin Novo - São Paulo - SP

 

 ( Fone (11) 5501-8300

 

 ( Fax (11) 5501-8302

 

 8 www.config.com.br - Original Message - 

 

 

 

 From: Adriano Cavalcanti 

 

   To: oracle_br@yahoogrupos.com.br 

 

   Sent: Monday, May 26, 2008 8:06 PM

 

   Subject: RE: [oracle_br] Performance ( Insert Select via dblink)

 

 

 

 Mácio não entendi muito bem. 

 

 

 

 Meu senário é o seguinte. 

 

 

 

 Este select ai retorna (depois de quase uma hora) 315 mil registros. 

 

 

 

 Como faço para inserir e dar commit a cada 50 registros? 

 

 

 

 To: oracle_br@yahoogrupos.com.br

 

   From: [EMAIL PROTECTED]

 

   Date: Mon, 19 May 2008 15:46:51 -0300

 

   Subject: Re: [oracle_br] Performance ( Insert Select via dblink)

 

 

 

 Adriano no meu caso eu fiz um cursor do que eu precisava e depois

fui fazendo o insert dentro de um while. Eu acho que você poderia

fazer um cursor e atualizar dentro do while... pegar as condições

where tua e colocar no cursor e no insert ficaria somente o select,

claro com poucos parametros... Creio que deve ser as suas condições

que esteja demorando... Tente transformar no cursor e depois faça o teste.

 

 

 

 Márcio Ricardo Alves da Silva

 

 

 

 Programador Pleno

 

 

 

 Oracle Certified Associate 9i

 

 

 

 * [EMAIL PROTECTED]

 

 

 

 Config Informática Ltda

 

 

 

  Av. Eng. Luis Carlos Berrini, 801 - 7º andar

 

 

 

  04571-010 - Brooklin Novo - São Paulo - SP

 

 

 

 ( Fone (11) 5501-8300

 

 

 

 ( Fax (11) 5501-8302

 

 

 

 8 www.config.com.br - Original Message - 

 

 

 

 From: Adriano Cavalcanti 

 

 

 

 To: oracle_br@yahoogrupos.com.br 

 

 

 

 Sent: Monday, May 19, 2008 3:38 PM

 

 

 

 Subject: RE: [oracle_br] Performance ( Insert Select via dblink)

 

 

 

 Marcio, não sei ainda como fazer isso. 

 

 

 

 Mas acredite 3 horas de insert não é mole não. 

 

 

 

 Segue insert.

 

 

 

 INSERT INTO TB_BILHETAGEM_LOGICA_FORNEC -- LOGICO

 

 

 

 (

 

 

 

 INT_ID_BILHETAGEM_LOGICA,

 

 

 

 INT_ID_FORNEC_BILHETAGEM,

 

 

 

 INT_ID_PROJETO,

 

 

 

 INT_ID_IMPRESSORA,

 

 

 

 INT_ID_IMPRESSAO,

 

 

 

 INT_ID_DISPOSITIVO_IMPRESSORA,

 

 

 

 STR_IP_IMPRESSORA,

 

 

 

 STR_SERIAL_IMPRESSORA,

 

 

 

 STR_NOME_IMPRESSORA,

 

 

 

 STR_DESCRICAO_IMPRESSORA,

 

 

 

 STR_VERSAO_APP,

 

 

 

 STR_MAC_IMPRESSORA,

 

 

 

 INT_QTD_PAGINAS,

 

 

 

 INT_QTD_PAGINAS_COLORIDAS,

 

 

 

 INT_QTD_PAGINAS_MONO,

 

 

 

 INT_QTD_FOLHAS,

 

 

 

 STR_DESCRICAO_QUALIDADE

[oracle_br] Re: Performance ( Insert Select via dblink)

2008-05-27 Por tôpico jlchiappa
Colega, não acompanhei a thread toda, mas de cara já digo : COMMIT
frequente, a cada x registros, * NÃO É *, NUNCA foi e NUNCA
SERÁ a maneira melhor e mais performática de se processar um SQL, em
especial INSERTs,
http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:4951966319022#4955604534852
 mostra exatamente isso E em sendo um único INSERT só com a query,
se a tabela-destino estiver como NOLOGGING, se durante o INSERT vc  vc
desligar as triggers, desativar os índices (NÂO é dropar!!), desativar
(ou ao menos ter as constraints validadas só no commit se der) E usar
um INSERT /*+ APPEND */, aposto um picolé de limão que a performance
assim vai ** HUMILHAR ** , *** ESMAGAR ***, * TRITURAR  a
performance da versão usando CURSOR e COMITs frequentes. No
workshop eu dei um exemplo simples, pequeno, aonde isso era
demonstrado, mas em ambiente de Produção o ganho (em não sendo gerado
quase nenhum redo log, nem undo) via de regra é fenomenalmente maior...

[]s

 Chiappa

--- Em oracle_br@yahoogrupos.com.br, Adriano Cavalcanti [EMAIL PROTECTED]
escreveu

 é Isso eu tinha pensado. 
 Achei que tivesse algo mais performatico. 
 
 como tenho 315 mil registro, acho melhor então fazer sempre uma
conta para pegar um quarto de registro  por commit. 
 
 Mas valeu
 
 
 
 To: oracle_br@yahoogrupos.com.br
 From: [EMAIL PROTECTED]
 Date: Tue, 27 May 2008 08:18:24 -0300
 Subject: Re: [oracle_br] Performance ( Insert Select via dblink)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Adriano, você pode ter um contador dentro do loop do
cursor e quando o contador chegar a 50, você dá o commit e zera o
contador novamente. É isso que você precisa?
 
 Márcio Ricardo Alves da Silva
 
 Programador Pleno
 
 Oracle Certified Associate 9i
 
 * [EMAIL PROTECTED]
 
 
 
 Config Informática Ltda
 
  Av. Eng. Luis Carlos Berrini, 801 - 7º andar
 
  04571-010 - Brooklin Novo - São Paulo - SP
 
 ( Fone (11) 5501-8300
 
 ( Fax (11) 5501-8302
 
 8 www.config.com.br - Original Message - 
 
 
 
 From: Adriano Cavalcanti 
 
   To: oracle_br@yahoogrupos.com.br 
 
   Sent: Monday, May 26, 2008 8:06 PM
 
   Subject: RE: [oracle_br] Performance ( Insert Select via dblink)
 
 
 
 Mácio não entendi muito bem. 
 
 
 
 Meu senário é o seguinte. 
 
 
 
 Este select ai retorna (depois de quase uma hora) 315 mil registros. 
 
 
 
 Como faço para inserir e dar commit a cada 50 registros? 
 
 
 
 To: oracle_br@yahoogrupos.com.br
 
   From: [EMAIL PROTECTED]
 
   Date: Mon, 19 May 2008 15:46:51 -0300
 
   Subject: Re: [oracle_br] Performance ( Insert Select via dblink)
 
 
 
 Adriano no meu caso eu fiz um cursor do que eu precisava e depois
fui fazendo o insert dentro de um while. Eu acho que você poderia
fazer um cursor e atualizar dentro do while... pegar as condições
where tua e colocar no cursor e no insert ficaria somente o select,
claro com poucos parametros... Creio que deve ser as suas condições
que esteja demorando... Tente transformar no cursor e depois faça o teste.
 
 
 
 Márcio Ricardo Alves da Silva
 
 
 
 Programador Pleno
 
 
 
 Oracle Certified Associate 9i
 
 
 
 * [EMAIL PROTECTED]
 
 
 
 Config Informática Ltda
 
 
 
  Av. Eng. Luis Carlos Berrini, 801 - 7º andar
 
 
 
  04571-010 - Brooklin Novo - São Paulo - SP
 
 
 
 ( Fone (11) 5501-8300
 
 
 
 ( Fax (11) 5501-8302
 
 
 
 8 www.config.com.br - Original Message - 
 
 
 
 From: Adriano Cavalcanti 
 
 
 
 To: oracle_br@yahoogrupos.com.br 
 
 
 
 Sent: Monday, May 19, 2008 3:38 PM
 
 
 
 Subject: RE: [oracle_br] Performance ( Insert Select via dblink)
 
 
 
 Marcio, não sei ainda como fazer isso. 
 
 
 
 Mas acredite 3 horas de insert não é mole não. 
 
 
 
 Segue insert.
 
 
 
 INSERT INTO TB_BILHETAGEM_LOGICA_FORNEC -- LOGICO
 
 
 
 (
 
 
 
 INT_ID_BILHETAGEM_LOGICA,
 
 
 
 INT_ID_FORNEC_BILHETAGEM,
 
 
 
 INT_ID_PROJETO,
 
 
 
 INT_ID_IMPRESSORA,
 
 
 
 INT_ID_IMPRESSAO,
 
 
 
 INT_ID_DISPOSITIVO_IMPRESSORA,
 
 
 
 STR_IP_IMPRESSORA,
 
 
 
 STR_SERIAL_IMPRESSORA,
 
 
 
 STR_NOME_IMPRESSORA,
 
 
 
 STR_DESCRICAO_IMPRESSORA,
 
 
 
 STR_VERSAO_APP,
 
 
 
 STR_MAC_IMPRESSORA,
 
 
 
 INT_QTD_PAGINAS,
 
 
 
 INT_QTD_PAGINAS_COLORIDAS,
 
 
 
 INT_QTD_PAGINAS_MONO,
 
 
 
 INT_QTD_FOLHAS,
 
 
 
 STR_DESCRICAO_QUALIDADE,
 
 
 
 INT_ID_QUALIDADE_IMPRESSAO,
 
 
 
 STR_NOME_TIPO_IMPRESSAO,
 
 
 
 INT_ID_TIPO_IMPRESSAO,
 
 
 
 STR_DESCRICAO_PAPEL,
 
 
 
 BT_ISDUPLEX,
 
 
 
 STR_NOME_FILA_IMPRESSAO,
 
 
 
 STR_NOME_SERVIDOR,
 
 
 
 STR_MAC_SERVIDOR,
 
 
 
 STR_IP_SERVIDOR,
 
 
 
 STR_SUB_NET_ENDERECO,
 
 
 
 STR_MASCARA_SERVIDOR,
 
 
 
 STR_NOME_USUARIO,
 
 
 
 STR_ET_NOME,
 
 
 
 FLT_SPOOLSIZE,
 
 
 
 INT_CODIGO_COR,
 
 
 
 INT_ID_TAMANHO_PAPEL,
 
 
 
 STR_NOME_DOCUMENTO,
 
 
 
 STR_NOME_APLICATIVO,
 
 
 
 STR_TITULO_DOCUMENTO,
 
 
 
 STR_ORIGEM_IMPRESSAO,
 
 
 
 STR_DESCRI_TAMANHO_IMPRESSAO,
 
 
 
 DT_DATA_REF,
 
 
 
 DT_IMPRESSAO,
 
 
 
 DT_CADASTRO,
 
 
 
 DT_BILHETAGEM
 
 
 
 )
 
 
 
 SELECT
 
 
 
 SQ_ID_BILHETAGEM_LOGICA_FORNEC.NEXTVAL,

[oracle_br] Re: Performance ( Insert Select via dblink)

2008-05-19 Por tôpico jlchiappa
Leonardo, acho que a recomendação mais diretamente seria descobrir
AONDE está o gargalo, e não descobrir em qual banco, pois pode ser
que seja problema de rede, de trigger disparando, de I/O em geral (por
exemplo, outras transações intensas usando os mesmos caras n+1!
possibilidades... Então minha sugestão é :

 a) provavelmente o mesmo banco que tem as tabelas deve também ter os
índices e quetais necessários para a query ser executada lá, conirmar
que lá roda bem executando a query, medindo o tempo, pegando o plano
de execução e checando-o diteitinho 

 b) o que via de regra a pessoa NUNCA há de querer é INSERT remoto,
ie, onde os registros (normalmente LEENTAMENTE, um por vez, linha a
linha, slow by slow) vão fluindo pela rede , o que é eficiente é o
INSERT ser feito LOCAL, bo banco-destino mesmo (em APPEND-MODE e em
paralelo, se for Oracle o banco e o hardware permitir), ** MAS ** com
o cuidado de que o select que traz os dados seja ENVIADO PARA O BANCO
REMOTO E RESOLVIDO LÁ , se o banco local cismar de querer executar o
SQL local, cada linhas das tabelas será puxada pra cá via rede pra
se fazer o join aqui, o que por si já é ruim, e ainda por cima teria o
agravante de que os índices estão lá, se o select for resolvido aqui
no banco lpcal normalmente não há como usar tais índices

 c) nem se precisa dizer que CURSOR *** naturalmente ** é Muito Menos
eficiente do que um SQL puro e direto, principalmente por causa dos
context switches e cia bela 

  No cliente atual a gente faz esse tipo de trabalho com alguma rotina
(pois o DW, que é o banco-destino, é em Oracle), e várias vezes o
pessoal teve problema desse tipo, realmente as soluções eficientes
foram, dependendo do caso  :

 a) hint de DRIVING_SITE no select, para que o SQL seja resolvido lá
na fonte 
 e/ou
 b) executar diretamente lá no SQL Server o select desejado, fazendo
todos os joins necessários lá, usando os recursos e opções todas do SS
(aí tínhamos um programador SS experiente escrebendo tal SQL) e lá
gravando uma tabela temporária, de trabalho, que depois o Oracle traz
pra cá via select * : no noso caso o cara que administra o SS fez uma
rotina java no Oracle que permite enviar SQLs pro SS, não sei se isso
é mesmo necessário ou há outras formas de enviar SQLs pro SS
  e/ou
 c) em alguns casos mais encruados, onde nada podia ser alterado no
SS, a solução foi ter o SS gerando um arquivo-texto com o joinzão
todo, arquivo esse que é enviado via ftp pro servidor Oracle e é lido
via EXTERNAL TABLE, poupando um passo de carga desse arquivo texto

 []s

  Chiappa
--- Em oracle_br@yahoogrupos.com.br, Leonardo Rezende [EMAIL PROTECTED] 
escreveu

 Acho que interessante seria em primeiro lugar descobrir em qual banco 
 está o gargalo... Faça o select separado para ver se ele demora
muito... 
 Se ele demorar, o gargalo provavelmente é no select do banco remoto, 
 caso contrário o gargalo deve ser no banco que você está fazendo o
insert!
 
 A partir daí você coloca suas forças para tentar otimizar!
 
 Adriano Cavalcanti escreveu:
  
  
  
  
  Marcio, não sei ainda como fazer isso.
  
  Mas acredite 3 horas de insert não é mole não.
  
  Segue insert.
  
  INSERT INTO TB_BILHETAGEM_LOGICA_FORNEC -- LOGICO
  (
  INT_ID_BILHETAGEM_LOGICA,
  INT_ID_FORNEC_BILHETAGEM,
  INT_ID_PROJETO,
  INT_ID_IMPRESSORA,
  INT_ID_IMPRESSAO,
  INT_ID_DISPOSITIVO_IMPRESSORA,
  STR_IP_IMPRESSORA,
  STR_SERIAL_IMPRESSORA,
  STR_NOME_IMPRESSORA,
  STR_DESCRICAO_IMPRESSORA,
  STR_VERSAO_APP,
  STR_MAC_IMPRESSORA,
  INT_QTD_PAGINAS,
  INT_QTD_PAGINAS_COLORIDAS,
  INT_QTD_PAGINAS_MONO,
  INT_QTD_FOLHAS,
  STR_DESCRICAO_QUALIDADE,
  INT_ID_QUALIDADE_IMPRESSAO,
  STR_NOME_TIPO_IMPRESSAO,
  INT_ID_TIPO_IMPRESSAO,
  STR_DESCRICAO_PAPEL,
  BT_ISDUPLEX,
  STR_NOME_FILA_IMPRESSAO,
  STR_NOME_SERVIDOR,
  STR_MAC_SERVIDOR,
  STR_IP_SERVIDOR,
  STR_SUB_NET_ENDERECO,
  STR_MASCARA_SERVIDOR,
  STR_NOME_USUARIO,
  STR_ET_NOME,
  FLT_SPOOLSIZE,
  INT_CODIGO_COR,
  INT_ID_TAMANHO_PAPEL,
  STR_NOME_DOCUMENTO,
  STR_NOME_APLICATIVO,
  STR_TITULO_DOCUMENTO,
  STR_ORIGEM_IMPRESSAO,
  STR_DESCRI_TAMANHO_IMPRESSAO,
  DT_DATA_REF,
  DT_IMPRESSAO,
  DT_CADASTRO,
  DT_BILHETAGEM
  )
  SELECT
  SQ_ID_BILHETAGEM_LOGICA_FORNEC.NEXTVAL,
  1,
  2,
  pr.IDPrinter,
  pj.ID_JOBS,
  NULL,
  FC_TRATA_IP(pr.JetDirectName) ip,
  NULL,
  pr.PrinterName,
  NULL,
  NULL,
  NULL,
  pj.Pages,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  pj.Duplex,
  NULL,
  pss.PrintServerName,
  NULL,
  pss.IP,
  ss.SubNetwork,
  pss.Mask,
  ac.Name,
  NULL,
  NULL,
  pj.IDPAPrintColor,
  pj.IDPAPaperSize,
  pj.Document,
  pa.AppName,
  NULL,
  NULL,
  ps.Description,
  NULL,
  pj.Date,
  NULL,
  sysdate
  FROM
  [EMAIL PROTECTED] pr
  INNER JOIN [EMAIL PROTECTED] pj
  ON pj.IDPrinter = pr.IDPrinter
  INNER JOIN [EMAIL PROTECTED] pa
  ON pa.IDPAApp = pj.IDPAApp
  INNER JOIN [EMAIL PROTECTED] ac
  ON ac.IDAccount = pj.IDAccount
  INNER JOIN [EMAIL PROTECTED] ps
  ON ps.IDPAPaperSize = pj.IDPAPaperSize
  

[oracle_br] Re: Performance Oracle 9i - Podem me ajudar?

2008-05-09 Por tôpico jlchiappa
Colega, só pra variar vc NÂO diz o principal, ie, se é hardware e SO
de 32 bits - como imagino que vc sabia, nos 32 bits vc tem LIMITES pra
quanto de RAM vc pode alocar pra um executável (como o executável do
banco e outros), SE for 32 bits até pode ser esses seus settings
estejam um pouco altos e ultrapassando o limite (e portanto forçando
alguma Paginação) - não é provável, mas pode ser. Outra coisa que vc
não diz é ** SE ** vc está usando conexões MTS/shared server e/ou
Paralelismo, no banco 9i ambos os recursos NÂO se utilizam da PGA
automática e confiam no sort_area_size e no hash_area_size, que pra
esse caso realmente estão minúsculos, aumente-os se isso é verdadeiro.
  O que parece mais provável, porém, não é config do banco em geral,
mas estruturas (por exemplo, tablespaces mal-feitas, com extent size
inadequado, não-LMT, etc) e/ou config do CBO e/ou tuning de SQL, e/ou
servidor sub-dimensionado ou intensamente usado : o exemplo de
lentidão que vc dá parece nos levar à essa conclusão, uma busca numa
tabela de poucos milhares de itens levar 5 segundos é GLACIALMENTE
lenta, quase congelada mesmo, olha só no meu banco XE, SEM RAID algum,
vagalzão :
  
[EMAIL PROTECTED]:SQLset timing on
[EMAIL PROTECTED]:SQLselect * from TAB_NOCOMPRESS;


02/2006 22:14:36 07/02/2006 22:14:36 2006-02-07:22:14:36 VALID   N N N
SYS  DBMS_SPACE
02/2006 22:14:37 07/02/2006 22:14:37 2006-02-07:22:14:37 VALID   N N N

7310 linhas selecionadas.

Decorrido: 00:00:04.25

OK, óbvio que não há concorrência na minha máquina, mas
NECESSARIAMENTE mesmo assim um servidor de Produção, com RAID, com um
cachezão, certamente com discos SCSI nesse RAID, não podia de modo
algum ser mais lento... Então o seu procedimento será :

 a) checar COMO está a utilização desse servidor quanto à I/O, CPU,
RAM e rede, ver se não há outras sessões afora essa do LOV fazendo
alguma coisa bizarra, ver o consumo geral de recursos, ver se o
cenário de paging por limitação dos 32 bits está ocorrendo... No
linux/unix vc teria nativo top, vmstat, iostat, netstat, glance,
trace, etc, no windows iirc não tem muita coisa boa nativa,
principalmente quanto à RAM que ele mostra por processo E não por
thread, provavelmente vc terá que baixar utilitários de terceiros para
isso
 
 b) fazer um TRACE 10046 level 12 da sessão lenta (executando um SQL
que seja, o do LOV talvez) , passar o TKPROF nele pra checar o plano
de execução real usado e os waits, localizar no arquivo de trace os
passos com maiores elapsed e reads...
 
 Essa análise é que vai te dar subsídio para diagnosticar I/O
excessivo (poucas linhas exigindo leitura de muitos blocos, apontando
para estruturas físicas ruins, concorrência, hot spots, etc) e/ou
lentidão de hardware (I/Os ou transporte de redes demorando muito mais
que o esperado no seu hardware e na sua taxa de utiliação), e/ou
simplesmente palno de execução ruim (caso em que vc teria que
recoletar estatísticas, talvez incluindo histogramas maiores, e/ou
alterar parãmetros de CBO), é por aí...
 
 []s
 
   Chiappa
   
--- Em oracle_br@yahoogrupos.com.br, cegoncalvesvr
[EMAIL PROTECTED] escreveu

 Ola amigos,
 
 Servidor DELL
 Oracle 9i 9.2.0.7   
 Processador de 1.6 Ghz Intel XEON
 04 Gb de RAM
 06 Discos SAS de 146 GB (Com RAID 10)
 Windows 2000 Server
 O meu sistema em alguns processos acho que ele demora.
 O sistema é em PL/SQL Oracle
 
 Exemplo: Quando aciono a LOV de produtos (onde tenho aproximadamente 
 7700 itens), demora uns 05 a 07 segundos para lista de produtos 
 aparecer.
 Será que tem algum parâmetro baixo?
 
 Estou colocando abaixo os principais comandos com a quantidade de 
 memória.
 
 sort_area_retained_size   1048576
 sort_area_size1048576
 shared_pool_reserved_size 5000
 shared_pool_size  520093696
 pga_aggregate_target  51200
 workarea_size_policy  AUTO
 log_buffer20500480
 java_pool_size16777216
 large_pool_size   83886080
 hash_area_size15452000
 enqueue_resources 80240
 dml_locks 20020
 db_cache_size 704643072
 
 Alguem poderia me dar uma ajuda?
 
 Abraços.





Re: [oracle_br] Re: Performance em Query - Evento de Espera - PX Deq: Execute Reply

2008-03-24 Por tôpico Rodrigo Telles
Obrigado Chiappa,
vou estudar os docs que me passou.

Abs


On 3/21/08, jlchiappa [EMAIL PROTECTED] wrote:

   Colega, o documento que vc quer é a nota 280939.1, Subject:Checklist
 for Performance Problems with Parallel Execution , lá vc verá que até
 há algumas coisinhas que vc pode verificar, mas ela mesma (e as notas
 para as quais há link dentro dela), outras notas relacionadas como a
 203238.1 Subject:Using Parallel Execution, a documentação mesmo
 (manuais oficiais Oracle do banco, nos itens inicados pela nota
 184417.1 Subject: Where to find Information about Parallel Execution
 in the Oracle Documentation, todas dizem o mesmo basicamente :

 1. cada um dos parallel Slaves fazem um pedaço da leitura que o SQL
 da sessão master lhe pediu, então ** SE ** a o SQL em si na sessão
 master está ruim, está acessando muitas coisas que não precisa, está
 usando um método de join ineficiente, etc, os slaves vão fazer
 TONELADAS de trabalho inútil, o primeiro passo sempre, SEMPRE, **
 SEMPRE **, é tunning do SQL, para que ele faça o menor número possível
 de LIOs, ok ?

 2. já que os parallel slaves fazem I/O numa parcela do total, opções
 que segreguem parte do todo (como PARTICIONAMENTO) são absolutamente
 críticas para a performance deles. Da mesma forma o é o ajuste do I/O
 (tanto dentro do banco, com params de multiblock_read e de
 filesystem_options) quanto FORA do banco, no servior, setando onde
 possível I/O asíncrono, I/O direto, params de I/O (** vitais no
 unix/linux).

 == então a minha recomendação é : se não o fez ainda, *** PRIMEIRO
 *** vá pro tunning do SQL, melhorias das estruturas de dados (com
 paralelismo, índices seletivos, global temporary tables, modo
 nologging aonde/se possível, etc), e pra verificação de I/O no banco
 e no servidor, apenas ** SE ** não obter nada significativo aí sim vá
 pro micro-tunning como é o caso de params de parallel... Isso porque,
 tal como as notas metlink citadas falam, esses ajuste são CUSTOSOS,
 baseados muito em tentativa e erro, e ao final talvez não tragam nada
 de significativo

 []s

 Chiappa

 ===
 Participe do ENPO - Encontro de Profissionais Oracle 2008 !
 Informações e inscrições em http://www.enpo-br.org
 José Laurindo Chiappa, Palestrante ENPO-2008
 ===

 --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 Rodrigo Telles
 [EMAIL PROTECTED] escreveu
 
  Pessoal,
  estou com uma query que , em seus eventos de espera, tenho o evento
 *PX Deq:
  Execute Reply* como o maior.
 
  Evento
  Total_Waits
  Total_TimeOuts
  Time_Waited
 
 
 
 
  SQL*Net more data from client
  1
  0
  0
  PX Deq: Join ACK
  4
  0
  0
  PX Deq: Parse Reply
  4
  0
  2
  SQL*Net message to client
  15
  0
  0
  SQL*Net message from client
  15
  0
  31
  latch free
  17
  14
  8
  PX Deq Credit: send blkd
  1738
  0
  175
  PX Deq: Execute Reply
  1954
  1597
  316325
  PX Deq Credit: need buffer
  9029
  0
  338
  db file scattered read
  14892
  0
  18049
  db file sequential read
  19486
  0
  15048
 
  Em doc da Oracle esse evento é visto como idle event. Porém se o
 tempo dele
  for muito grande com relação aos outros devemos investigar os processos
  paralelos escravos. Olhando cada um, que são 4, verifiquei que o maior
  evento em espera são:*PX Deq Credit: send blkd e PX Deq: Table Q Normal*
  Aqui temos um ambiente de DW e o Oracle é o 9.2.0.5
 
  Alguém ja passou por essa situação e conseguiu diminuir esses eventos de
  espera? Além disso, a Oracle fala muito em investigar os processos
 paralelos
  escravos? Existe algum lugar que mostre como investigar isso a fundo
  verificando se eles estão ou não trabalhando com boa performance?
 
  Sds
 
  Rodrigo
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 

 



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



[oracle_br] Re: Performance em Query - Evento de Espera - PX Deq: Execute Reply

2008-03-21 Por tôpico jlchiappa
Colega, o documento que vc quer é a nota 280939.1, Subject:Checklist
for Performance Problems with Parallel Execution , lá vc verá que até
há algumas coisinhas que vc pode verificar,  mas ela mesma (e as notas
para as quais há link dentro dela), outras notas relacionadas como a
203238.1 Subject:Using Parallel Execution, a documentação mesmo
(manuais oficiais Oracle do banco, nos itens inicados pela nota
184417.1 Subject: Where to find Information about Parallel Execution
in the Oracle Documentation, todas dizem o mesmo basicamente : 

 1. cada um dos parallel Slaves fazem um pedaço da leitura que o SQL
da sessão master lhe pediu, então ** SE ** a o SQL em si na sessão
master está ruim, está acessando muitas coisas que não precisa, está
usando um método de join ineficiente, etc, os slaves vão fazer
TONELADAS de trabalho inútil, o primeiro passo sempre, SEMPRE, **
SEMPRE **, é tunning do SQL, para que ele faça o menor número possível
de LIOs, ok ? 
 
 2. já que os parallel slaves fazem I/O numa parcela do total, opções
que segreguem parte do todo (como PARTICIONAMENTO) são absolutamente
críticas para a performance deles. Da mesma forma o é o ajuste do I/O
(tanto dentro do banco, com params de multiblock_read e de
filesystem_options) quanto FORA do banco, no servior, setando onde
possível I/O asíncrono, I/O direto, params de I/O (** vitais no
unix/linux).
 
 == então a minha recomendação é : se não o fez ainda, *** PRIMEIRO
*** vá pro tunning do SQL, melhorias das estruturas de dados (com
paralelismo, índices seletivos, global temporary tables, modo
nologging aonde/se possível, etc),  e pra verificação de I/O no banco
e no servidor, apenas ** SE ** não obter nada significativo aí sim vá
pro micro-tunning como é o caso de params de parallel... Isso porque,
tal como as notas metlink citadas falam, esses ajuste são CUSTOSOS,
baseados muito em tentativa e erro, e ao final talvez não tragam nada
de significativo
 
 []s
  
   Chiappa
   
 ===
 Participe do ENPO - Encontro de Profissionais Oracle 2008 !
 Informações e inscrições em http://www.enpo-br.org
 José Laurindo Chiappa, Palestrante ENPO-2008
===

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

 Pessoal,
 estou com uma query que , em seus eventos de espera, tenho o evento
*PX Deq:
 Execute Reply* como o maior.
 
  Evento
  Total_Waits
  Total_TimeOuts
  Time_Waited
 
 
 
 
  SQL*Net more data from client
  1
  0
  0
  PX Deq: Join ACK
  4
  0
  0
  PX Deq: Parse Reply
  4
  0
  2
  SQL*Net message to client
  15
  0
  0
  SQL*Net message from client
  15
  0
  31
  latch free
  17
  14
  8
  PX Deq Credit: send blkd
  1738
  0
  175
  PX Deq: Execute Reply
  1954
  1597
  316325
  PX Deq Credit: need buffer
  9029
  0
  338
  db file scattered read
  14892
  0
  18049
  db file sequential read
  19486
  0
  15048
 
 Em doc da Oracle esse evento é visto como idle event. Porém se o
tempo dele
 for muito grande com relação aos outros devemos investigar os processos
 paralelos escravos. Olhando cada um, que são 4, verifiquei que o maior
 evento em espera são:*PX Deq Credit: send blkd e PX Deq: Table Q Normal*
 Aqui temos um ambiente de DW e o Oracle é o 9.2.0.5
 
 Alguém ja passou por essa situação e conseguiu diminuir esses eventos de
 espera? Além disso, a Oracle fala muito em investigar os processos
paralelos
 escravos? Existe algum lugar que mostre como investigar isso a fundo
 verificando se eles estão ou não trabalhando com boa performance?
 
 Sds
 
 Rodrigo
 
 
 [As partes desta mensagem que não continham texto foram removidas]





[oracle_br] Re: Performance View

2008-03-11 Por tôpico alx_haag
  A view materializada difere da View comum porque materializa os
resultados da query da view dentro dela própria,enquanto que a view
comum somente exibe os dados no momento em que é solicitada.

  Um uso possível de view materializada seria para replicar
informações por exemplo entre matriz e filial através de uma vpn ou
conexão comum de internet. Na matriz existiria a tabela e na filial
uma view materializada da mesma tabela. Quando fosse inserido um novo
registro na tabela este seria replicado pelo Oracle, de acordo com os
parâmetros de criação da view, para as views materializadas das filiais.

  Eu utilizo View materializadas para casos mais específicos, como
este exemplo citado acima. Para casos de simples consultas geralmente
utilizo views comuns.

Att.
Alexsandro Haag

--- Em oracle_br@yahoogrupos.com.br, Vitor Hugo [EMAIL PROTECTED] escreveu

 Bom dia a todos,
 
 Entre Materialized View e uma simples view qual é o que possui a melhor 
 performance deduzindo que os dois efetuem a mesma consulta. E qual é a 
 diferença entre uma e outra.
 
 Obrigado pela ajuda.
 
 Vitor Hugo
 Analista Desenvolvedor Java





[oracle_br] Re: Performance no Oracle com SQL ANSI

2007-11-21 Por tôpico jlchiappa
Só acrescento que :

a) a recomendação do manual ** não é ** por causa de performance, veja
lá que nas razões, são citadas a melhor legibilidade da sintaxe ANSI,
features que são mais difíceis de imitar na sintaxe tradicional (como
FULL OUTER JOINs, OUTER JOIN da mesma tabela com várias outras, etc)

e

b) a pessoa ** TEM QUE VER ** se dá pra se usar a sintaxe ANSI no caso
dela : por ser mais nova, ainda há mais de um bug sendo resolvido pra
elas. Falando de 10g, de cara temos os seguintes bugs abertos (nota
401436.1 Subject:   10.2.0.4 Patch Set - List of Bug Fixes by Problem
Type) :

ANSI Joins
4204383 Dump [kkqtnlocbk] optimizing ANSI OUTER JOINs with subqueries
4702830 OERI[kkoljt1] when using star transformation with an ANSI
outer join
4901291 Wrong results with left outer joins on view with a function
5188321 wrong results (no rows) from ANSI outer join
5590396 Dump or Wrong Results with ANSI JOINS and CONNECT BY
5765958 OERI[qcscpqbTxt] / OERI[qcsfbdnp:1] from ANSI query in PLSQL
5964193 OERI[kkqsRewriteCorrCols-1] during query rewrite with ANSI joins
5988085 Dump [kkodsel] from STAR transformation with ANSI view

== o bug 5188321, por exemplo, é explícito :

Bug 5188321  wrong results (no rows) from ANSI outer join

This note gives a brief overview of bug 5188321.
Affects:

Product (Component) Oracle Server (Rdbms)
Range of versions believed to be affected   Versions  11
Versions confirmed as being affected

* 9.2.0.7
* 9.2.0.8
* 10.1.0.5 

Platforms affected  Generic (all / most platforms affected)

Fixed:

This issue is fixed in  

* 10.2.0.4 (Server Patch Set)
* 11g (Future version) 

Symptoms:

Related To:

* Wrong Results 
* ANSI Joins 

Description

Wrong results can be returned with a query involving a very large
select 
list count when ANSI OUTER JOIN syntax is used.


Workaround: 
  Use native oracle outer join syntax 
 or 
  reduce the select list count.

== ou seja, não há patch e o workaround é usar a boa e velha sintaxe
nativa Então pra mim, que manipulo sempre grandes volumes, vcs
podem imaginar ser seguríssimo apostar um picolé de limão que ** VAI
** demorar um pouquinho pra eu começar a me preocupar com sintaxe ANSI...

[]s

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

 Alisson
 
 Foi na documentação do Oracle9i Database:
 - SQL Reference
- Joins
 

http://download.oracle.com/docs/cd/B10501_01/server.920/a96540/queries7.htm#2054014
 
 
 Mas a recomendação permanece na documentação da versão mais atual (11g):
 

http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/queries006.htm#sthref3238
 
 
 [ ]
 
 André
 
 
 Em 16/11/07, Alisson Aguiar [EMAIL PROTECTED] escreveu:
 
Beleza, André. Obrigado pela informação.
 
  Só para complementar, você tem o link da fonte essa informação? É o
  manual,
  White Paper, etc. ? Gostaria de apresentar essa informação (Oracle),
  juntamente com outras que coletei.
 
  Abraço,
  Alisson
 
  Em 16/11/07, Andre Santos
[EMAIL PROTECTED]andre.psantos.ti%40gmail.com
  escreveu:
  
   Alisson
  
   A própria Oracle recomenda que se use a sintaxe mais moderna (atual
  padrão
   ANSI), em vez do antigo operador (+):
   
   Oracle Corporation recommends that you use the FROM clause OUTER
JOIN
   syntax
   rather than the Oracle join operator. Outer join queries that
use the
   Oracle
   join operator (+) are subject to the following rules and
restrictions,
   which
   do not apply to the FROM clause join syntax:
   (...)
   
  
   Poderia citar umas boas razões para adotar a sintaxe atualizada,
mas a
   questão é sobre performance... no momento, vou no palpite. :^)
   Algumas vezes, quando fiz um outer join na sintaxe antiga e depois
  refiz
   na sintaxe atual, notei que a ordenação do conjunto de linhas foi
   diferente... daí suponho que o plano de execução deve ter sido um
  pouco
   diferente também.
   Já que a Oracle recomenda a sintaxe mais moderna, suponho que a
   tendência
   seja que o otimizador seja cada vez mais voltado a isso.
  
   Mas, para tirar qualquer dúvida, seria bom montar um teste (não
trivial,
   com
   tabelas grandes) e verificar os tempos de resposta e os planos
de acesso
   gerados.
  
   [ ]
  
   André
  
   Em 16/11/07, Alisson Aguiar [EMAIL PROTECTED]
mralisson%40gmail.commralisson%40gmail.com
   escreveu:
   
Pessoal,
   
Existe diferença de performance ao utilizar a sintaxe
proprietária do
Oracle
e o padrão ANSI 92/99 no que diz respeito ao OUTER JOIN? Fui
  questionado
sobre essa diferença e nunca medi para ver se existe.
   
Alguém aqui já chegou ver se realmente existe diferença na
performance
   ao
utilizar um ou outro padrão?
   
Abraco,
Alisson
   
[As partes desta mensagem que não continham texto foram removidas]
   
   
   
  
  

Re: [oracle_br] Re: Performance no Oracle com SQL ANSI

2007-11-21 Por tôpico Andre Santos
Chiappa

Muito obrigado pela informação! É sempre bom ter em mente que, dependendo da
versão/release, podem haver bugs.

Mas, esses específicos que você citou, estão corrigidos a partir da versão
10.2.0.4, certo? (pelo menos, foi o que a nota menciona).

Valeu!

[ ]

André


Em 21/11/07, jlchiappa [EMAIL PROTECTED] escreveu:

   Só acrescento que :

 a) a recomendação do manual ** não é ** por causa de performance, veja
 lá que nas razões, são citadas a melhor legibilidade da sintaxe ANSI,
 features que são mais difíceis de imitar na sintaxe tradicional (como
 FULL OUTER JOINs, OUTER JOIN da mesma tabela com várias outras, etc)

 e

 b) a pessoa ** TEM QUE VER ** se dá pra se usar a sintaxe ANSI no caso
 dela : por ser mais nova, ainda há mais de um bug sendo resolvido pra
 elas. Falando de 10g, de cara temos os seguintes bugs abertos (nota
 401436.1 Subject: 10.2.0.4 Patch Set - List of Bug Fixes by Problem
 Type) :

 ANSI Joins
 4204383 Dump [kkqtnlocbk] optimizing ANSI OUTER JOINs with subqueries
 4702830 OERI[kkoljt1] when using star transformation with an ANSI
 outer join
 4901291 Wrong results with left outer joins on view with a function
 5188321 wrong results (no rows) from ANSI outer join
 5590396 Dump or Wrong Results with ANSI JOINS and CONNECT BY
 5765958 OERI[qcscpqbTxt] / OERI[qcsfbdnp:1] from ANSI query in PLSQL
 5964193 OERI[kkqsRewriteCorrCols-1] during query rewrite with ANSI joins
 5988085 Dump [kkodsel] from STAR transformation with ANSI view

 == o bug 5188321, por exemplo, é explícito :

 Bug 5188321 wrong results (no rows) from ANSI outer join

 This note gives a brief overview of bug 5188321.
 Affects:

 Product (Component) Oracle Server (Rdbms)
 Range of versions believed to be affected Versions  11
 Versions confirmed as being affected

 * 9.2.0.7
 * 9.2.0.8
 * 10.1.0.5

 Platforms affected Generic (all / most platforms affected)

 Fixed:

 This issue is fixed in

 * 10.2.0.4 (Server Patch Set)
 * 11g (Future version)

 Symptoms:

 Related To:

 * Wrong Results
 * ANSI Joins

 Description

 Wrong results can be returned with a query involving a very large
 select
 list count when ANSI OUTER JOIN syntax is used.

 Workaround:
 Use native oracle outer join syntax
 or
 reduce the select list count.

 == ou seja, não há patch e o workaround é usar a boa e velha sintaxe
 nativa Então pra mim, que manipulo sempre grandes volumes, vcs
 podem imaginar ser seguríssimo apostar um picolé de limão que ** VAI
 ** demorar um pouquinho pra eu começar a me preocupar com sintaxe ANSI...

 []s

 Chiappa

 --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 Andre Santos
 [EMAIL PROTECTED] escreveu
 
  Alisson
 
  Foi na documentação do Oracle9i Database:
  - SQL Reference
  - Joins
  
 

 http://download.oracle.com/docs/cd/B10501_01/server.920/a96540/queries7.htm#2054014
  
 
  Mas a recomendação permanece na documentação da versão mais atual (11g):
  
 

 http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/queries006.htm#sthref3238
  
 
  [ ]
 
  André
 
 
  Em 16/11/07, Alisson Aguiar [EMAIL PROTECTED] escreveu:
  
   Beleza, André. Obrigado pela informação.
  
   Só para complementar, você tem o link da fonte essa informação? É o
   manual,
   White Paper, etc. ? Gostaria de apresentar essa informação (Oracle),
   juntamente com outras que coletei.
  
   Abraço,
   Alisson
  
   Em 16/11/07, Andre Santos
 [EMAIL PROTECTED]andre.psantos.ti%40gmail.com
   escreveu:
   
Alisson
   
A própria Oracle recomenda que se use a sintaxe mais moderna (atual
   padrão
ANSI), em vez do antigo operador (+):

Oracle Corporation recommends that you use the FROM clause OUTER
 JOIN
syntax
rather than the Oracle join operator. Outer join queries that
 use the
Oracle
join operator (+) are subject to the following rules and
 restrictions,
which
do not apply to the FROM clause join syntax:
(...)

   
Poderia citar umas boas razões para adotar a sintaxe atualizada,
 mas a
questão é sobre performance... no momento, vou no palpite. :^)
Algumas vezes, quando fiz um outer join na sintaxe antiga e depois
   refiz
na sintaxe atual, notei que a ordenação do conjunto de linhas foi
diferente... daí suponho que o plano de execução deve ter sido um
   pouco
diferente também.
Já que a Oracle recomenda a sintaxe mais moderna, suponho que a
tendência
seja que o otimizador seja cada vez mais voltado a isso.
   
Mas, para tirar qualquer dúvida, seria bom montar um teste (não
 trivial,
com
tabelas grandes) e verificar os tempos de resposta e os planos
 de acesso
gerados.
   
[ ]
   
André
   
Em 16/11/07, Alisson Aguiar [EMAIL PROTECTED]
 mralisson%40gmail.commralisson%40gmail.com
escreveu:

 Pessoal,

 Existe diferença de performance ao utilizar a sintaxe
 proprietária do
 Oracle
 e o padrão ANSI 92/99 no que diz respeito ao OUTER JOIN? Fui
   

[oracle_br] Re: Performance no Oracle com SQL ANSI

2007-11-21 Por tôpico jlchiappa
A frase é PROVAVELMENTE ESTARÃO CORRIGIDOS, e não estão, pois como
a nota mesmo diz o patch 10.2.0.4 é futuro ainda, não existe ainda...

[]s

 Chiappa

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

 Chiappa
 
 Muito obrigado pela informação! É sempre bom ter em mente que,
dependendo da
 versão/release, podem haver bugs.
 
 Mas, esses específicos que você citou, estão corrigidos a partir da
versão
 10.2.0.4, certo? (pelo menos, foi o que a nota menciona).
 
 Valeu!
 
 [ ]
 
 André
 
 
 Em 21/11/07, jlchiappa [EMAIL PROTECTED] escreveu:
 
Só acrescento que :
 
  a) a recomendação do manual ** não é ** por causa de performance, veja
  lá que nas razões, são citadas a melhor legibilidade da sintaxe ANSI,
  features que são mais difíceis de imitar na sintaxe tradicional (como
  FULL OUTER JOINs, OUTER JOIN da mesma tabela com várias outras, etc)
 
  e
 
  b) a pessoa ** TEM QUE VER ** se dá pra se usar a sintaxe ANSI no caso
  dela : por ser mais nova, ainda há mais de um bug sendo resolvido pra
  elas. Falando de 10g, de cara temos os seguintes bugs abertos (nota
  401436.1 Subject: 10.2.0.4 Patch Set - List of Bug Fixes by Problem
  Type) :
 
  ANSI Joins
  4204383 Dump [kkqtnlocbk] optimizing ANSI OUTER JOINs with subqueries
  4702830 OERI[kkoljt1] when using star transformation with an ANSI
  outer join
  4901291 Wrong results with left outer joins on view with a function
  5188321 wrong results (no rows) from ANSI outer join
  5590396 Dump or Wrong Results with ANSI JOINS and CONNECT BY
  5765958 OERI[qcscpqbTxt] / OERI[qcsfbdnp:1] from ANSI query in PLSQL
  5964193 OERI[kkqsRewriteCorrCols-1] during query rewrite with ANSI
joins
  5988085 Dump [kkodsel] from STAR transformation with ANSI view
 
  == o bug 5188321, por exemplo, é explícito :
 
  Bug 5188321 wrong results (no rows) from ANSI outer join
 
  This note gives a brief overview of bug 5188321.
  Affects:
 
  Product (Component) Oracle Server (Rdbms)
  Range of versions believed to be affected Versions  11
  Versions confirmed as being affected
 
  * 9.2.0.7
  * 9.2.0.8
  * 10.1.0.5
 
  Platforms affected Generic (all / most platforms affected)
 
  Fixed:
 
  This issue is fixed in
 
  * 10.2.0.4 (Server Patch Set)
  * 11g (Future version)
 
  Symptoms:
 
  Related To:
 
  * Wrong Results
  * ANSI Joins
 
  Description
 
  Wrong results can be returned with a query involving a very large
  select
  list count when ANSI OUTER JOIN syntax is used.
 
  Workaround:
  Use native oracle outer join syntax
  or
  reduce the select list count.
 
  == ou seja, não há patch e o workaround é usar a boa e velha sintaxe
  nativa Então pra mim, que manipulo sempre grandes volumes, vcs
  podem imaginar ser seguríssimo apostar um picolé de limão que ** VAI
  ** demorar um pouquinho pra eu começar a me preocupar com sintaxe
ANSI...
 
  []s
 
  Chiappa
 
  --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
  Andre Santos
  andre.psantos.ti@ escreveu
  
   Alisson
  
   Foi na documentação do Oracle9i Database:
   - SQL Reference
   - Joins
   
  
 
 
http://download.oracle.com/docs/cd/B10501_01/server.920/a96540/queries7.htm#2054014
   
  
   Mas a recomendação permanece na documentação da versão mais
atual (11g):
   
  
 
 
http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/queries006.htm#sthref3238
   
  
   [ ]
  
   André
  
  
   Em 16/11/07, Alisson Aguiar mralisson@ escreveu:
   
Beleza, André. Obrigado pela informação.
   
Só para complementar, você tem o link da fonte essa
informação? É o
manual,
White Paper, etc. ? Gostaria de apresentar essa informação
(Oracle),
juntamente com outras que coletei.
   
Abraço,
Alisson
   
Em 16/11/07, Andre Santos
  andre.psantos.ti@andre.psantos.ti%40gmail.com
escreveu:

 Alisson

 A própria Oracle recomenda que se use a sintaxe mais moderna
(atual
padrão
 ANSI), em vez do antigo operador (+):
 
 Oracle Corporation recommends that you use the FROM clause OUTER
  JOIN
 syntax
 rather than the Oracle join operator. Outer join queries that
  use the
 Oracle
 join operator (+) are subject to the following rules and
  restrictions,
 which
 do not apply to the FROM clause join syntax:
 (...)
 

 Poderia citar umas boas razões para adotar a sintaxe atualizada,
  mas a
 questão é sobre performance... no momento, vou no palpite. :^)
 Algumas vezes, quando fiz um outer join na sintaxe antiga
e depois
refiz
 na sintaxe atual, notei que a ordenação do conjunto de
linhas foi
 diferente... daí suponho que o plano de execução deve ter
sido um
pouco
 diferente também.
 Já que a Oracle recomenda a sintaxe mais moderna, suponho que a
 tendência
 seja que o otimizador seja cada vez mais voltado a isso.

 Mas, para tirar qualquer dúvida, seria bom montar um teste (não
  trivial,
 com
 tabelas grandes) e 

Re: [oracle_br] Re: Performance do banco de dados!

2007-03-23 Por tôpico Thiago Lazzarotto
Bom dia Lista!

Como sempre Chiappa, boas explicações.
É verdade que em meu sistema tenho muitas querys com nested loop. Muitas 
mesmo.
Mas isso não é bom? Ou nem sempre é bom?

Como o meu número de logical reads é muito maior que o physical reads, 
vou começar a investigar
pelos consumidores de logical reads.

Existe algum valor aceitável para logical reads por query? Por exemplo, 
como vou saber se 1000 logical reads é muito ou pouco?
Só testando?

Valeu amigos.
Thiago.


jlchiappa escreveu:

 --- Em oracle_br@yahoogrupos.com.br 
 mailto:oracle_br%40yahoogrupos.com.br, Thiago Lazzarotto
 [EMAIL PROTECTED] escreveu
 
  Pelo SO tem como ver qual o processo que está fazendo mais
  I/O?
  Ou somente pelo banco?

 Até tem, mas como disse a análise pelo SO normalmente tem dois
 problemas : o SO não te mostra o histórico , só te mostra os top
 processos , E só se estiverem fazendo o I/O exatamente na hora que vc
 está analisando... Até existem ferramentas à parte do SO normalmente
 que permitem vc acompanhar o histórico de I/O dum processo, que dizem
 pra cada processo quantos % de I/O consumiu (tipo, existiam x
 processos na máquina, foram feitos n I/Os no sistema no total, assim
 se um dado processo fez y I/Os isso representa tantos % do I/O
 servido)mas normalmente isso não é parte integrante do SO...
 Então, se omo a maioria dos sistemas o seu basicamente processe o que
 veio do banco, I/O do banco está sempre envolvido, recomendaria
 começar olhando no banco, mesmo.


 
   O que notei analisando os statspack é que o número de waits não
 aumentou
   muito, mas o tempo de wait, esse sim aumentou bastante nas últimas
   semanas...

 Ou seja, teve sim processos/programas/alguma coisa nova que entrou
 (senão nada mudaria), e na média o tempo que os I/Os levam pra ser
 completados aumentou... Tranquilamente pode ser que o(s)
 programa(s)/processos mal-comportados estejam (por exemplo) fazendo
 nested loop, aí ele só faz I/Os curtos (PORTANTO não aperecriam em
 TOPs e coisas do tipo), mas são I/Os constantes, cabou um I/O pequeno
 imediatamente ele pede outro e logo em seguida outro e logo em
 seguida outro, ou seja, não tem um think time pra dar chance pro banco
 servir outro processo Um cara desse vc só pega NO HISTÓRICO,
 anaálise com vmstat/top/glance/similares é um instantãneo, não serviria.
 É como eu disse, análise de processo como um todo E analisar os
 principais processos Acho que seria MUITO muito interessante aí
 tentar se confirmar a performance do sub-sistema de disco per se, tipo
 : com o banco e aplicação parados vc faz uma medida, sobe o banco e
 ainda sem usuários faz outra, aí cfrme os usuários vão entrando vc vai
 fazendo novas medidas, E finalmente quando em modo normal de processo
 faz mais uma... http://www.acnc.com/benchmarks.html 
 http://www.acnc.com/benchmarks.html tem algumas tools
 free pra isso, das que ele cita quando eu precisei uma vez eu usei o
 iozone. Mas isso é informação complementar, pra mim o pono aí AINDA é
 processo fazendo LIOs feito doido.
 E só complementando : não só eu como o resto do pessoal que tá
 conversando com vc, estamos todos focando em I/O - de repente
 tranquilamente PODE ser que hajam outras questões aí... Eu sugiro que
 vc passe o teu trace 10046 dos principais processos também pela
 ferramenta ORASRP, ele monta um relatóriozinho mais detalhado do que o
 tkprof, de repente outras coisas podem aparecer. Tem uma versão nova
 dela em http://oracledba.ru/orasrp/ http://oracledba.ru/orasrp/

 []s

 Chiappa

  



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



[oracle_br] Re: Performance do banco de dados!

2007-03-23 Por tôpico hribeiro01

 Thiago,

  Intrometendo na conversa, como esta configurado as Lun's dentro da
Storage EMC? Vc usa multiplexação de FC? Qual eh a Capacidade de Block
Size da Lun? Q tipo de Storage vc usa? Symetrix ou Clariion? A Lun's
estão em TressPass?

--- Em oracle_br@yahoogrupos.com.br, Thiago Lazzarotto
[EMAIL PROTECTED] escreveu

 Bom dia Lista!
 
 Como sempre Chiappa, boas explicações.
 É verdade que em meu sistema tenho muitas querys com nested loop.
Muitas 
 mesmo.
 Mas isso não é bom? Ou nem sempre é bom?
 
 Como o meu número de logical reads é muito maior que o physical reads, 
 vou começar a investigar
 pelos consumidores de logical reads.
 
 Existe algum valor aceitável para logical reads por query? Por exemplo, 
 como vou saber se 1000 logical reads é muito ou pouco?
 Só testando?
 
 Valeu amigos.
 Thiago.
 
 
 jlchiappa escreveu:
 
  --- Em oracle_br@yahoogrupos.com.br 
  mailto:oracle_br%40yahoogrupos.com.br, Thiago Lazzarotto
  thiago.lazzarotto@ escreveu
  
   Pelo SO tem como ver qual o processo que está fazendo mais
   I/O?
   Ou somente pelo banco?
 
  Até tem, mas como disse a análise pelo SO normalmente tem dois
  problemas : o SO não te mostra o histórico , só te mostra os top
  processos , E só se estiverem fazendo o I/O exatamente na hora que vc
  está analisando... Até existem ferramentas à parte do SO normalmente
  que permitem vc acompanhar o histórico de I/O dum processo, que dizem
  pra cada processo quantos % de I/O consumiu (tipo, existiam x
  processos na máquina, foram feitos n I/Os no sistema no total, assim
  se um dado processo fez y I/Os isso representa tantos % do I/O
  servido)mas normalmente isso não é parte integrante do SO...
  Então, se omo a maioria dos sistemas o seu basicamente processe o que
  veio do banco, I/O do banco está sempre envolvido, recomendaria
  começar olhando no banco, mesmo.
 
 
  
O que notei analisando os statspack é que o número de waits não
  aumentou
muito, mas o tempo de wait, esse sim aumentou bastante nas últimas
semanas...
 
  Ou seja, teve sim processos/programas/alguma coisa nova que entrou
  (senão nada mudaria), e na média o tempo que os I/Os levam pra ser
  completados aumentou... Tranquilamente pode ser que o(s)
  programa(s)/processos mal-comportados estejam (por exemplo) fazendo
  nested loop, aí ele só faz I/Os curtos (PORTANTO não aperecriam em
  TOPs e coisas do tipo), mas são I/Os constantes, cabou um I/O pequeno
  imediatamente ele pede outro e logo em seguida outro e logo em
  seguida outro, ou seja, não tem um think time pra dar chance pro banco
  servir outro processo Um cara desse vc só pega NO HISTÓRICO,
  anaálise com vmstat/top/glance/similares é um instantãneo, não
serviria.
  É como eu disse, análise de processo como um todo E analisar os
  principais processos Acho que seria MUITO muito interessante aí
  tentar se confirmar a performance do sub-sistema de disco per se, tipo
  : com o banco e aplicação parados vc faz uma medida, sobe o banco e
  ainda sem usuários faz outra, aí cfrme os usuários vão entrando vc vai
  fazendo novas medidas, E finalmente quando em modo normal de processo
  faz mais uma... http://www.acnc.com/benchmarks.html 
  http://www.acnc.com/benchmarks.html tem algumas tools
  free pra isso, das que ele cita quando eu precisei uma vez eu usei o
  iozone. Mas isso é informação complementar, pra mim o pono aí AINDA é
  processo fazendo LIOs feito doido.
  E só complementando : não só eu como o resto do pessoal que tá
  conversando com vc, estamos todos focando em I/O - de repente
  tranquilamente PODE ser que hajam outras questões aí... Eu sugiro que
  vc passe o teu trace 10046 dos principais processos também pela
  ferramenta ORASRP, ele monta um relatóriozinho mais detalhado do que o
  tkprof, de repente outras coisas podem aparecer. Tem uma versão nova
  dela em http://oracledba.ru/orasrp/ http://oracledba.ru/orasrp/
 
  []s
 
  Chiappa
 
   
 
 
 
 [As partes desta mensagem que não continham texto foram removidas]





[oracle_br] Re: Performance do banco de dados!

2007-03-23 Por tôpico jlchiappa
Vou responder em ordem inversa : primeiro, vc compara é a proporção 
de LIOs x linhas efetivamente retornadas - por exemplo, digamos que 
vc vá fazer um acesso via índice direto, vc vai fazer um I/O do bloco 
de header do índice, depois ao menos um I/O de bloco branch 
(tipicamente na verdade em produção ao menos 2 blocos branch, em 
produção com tabs grandes é comum vc ter índices altos) ,depois 
outro I/O do bloco leaf, que aí sim aponta pro bloco desejado com o 
registro na tabela, bloco esse que será lido também - assim, ao menos 
5 I/Os pra se obter uma linha via índice é um mínimo comum. Assim, no 
seu exemplo, se esses 1000 LIOs  trouxeram (digamos) , cento e tantas 
linhas, perfeito, fez uma média próxima disso de I/O por linha, é uma 
boa indicação de eficiência. Agora, imagine que esses mesmos 1000 
LIOs trouxeram apenas meia dúzia de linhas, isso está muito muito 
longe do ideal, algo está TERRIVELMENTE errado aí, talvez um HWM 
alto, talvez um plano ineficiente, algo não tá bem..
 = EVIDENTE, esse tipo de análise não é aplicável sempre, 
por exemplo se vc tem algum tipo de agrupação, como um COUNT, óbvio 
que agrupação significa ler largas porções da tabela fazendo 
trocentos I/Os pra te trazer só uma linha que é o resultado da 
contagem, óbvio que a relação entre LIOs x resultado estará 
NATURALMENTE distorcida aqui. Casos deste tipo aí sim, é mesmo 
empírico, é vc testar vários planos, re-escrever o SQL (com 
analytics, com o que puder) e ir comparando pra ver qual faz menos 
LIOs
 Quanto ao nested loops, ele NÃO é sempre bom, e nem (pra citar o 
caso típico) o full table scan é sempre ruim, tudo SEMPRE SEMPRE 
depende do caso, depende doseu objetivo Sabendo-se a teoria por 
trás do método (que no caso de nested loop basicamente é : escolhe-se 
uma tabela drive que será lida até o fim, pra cada linha lida busca-
se os detalhes na outra tab do join), fica claro que isso é ultra-
eficiente quando a tabela drive é ** pequena **, ou no caso em que a 
tab drive é grande MAS vc quer obter as primeiras linhas mais 
rapidamente (por exemplo, aquelas queries de paginação, onde vc 
mostra os primeiros 10 regs, depois que o usuário aperta 1 botão 
mostra mais 10). Claro que se o seu objetivo é processar tudo o mais 
rapidamente E a tabela não é de tamanho trivial, é via de regra *** 
muito mais *** eficiente vc processar múltiplas linhas por vez, ao 
invés de uma por uma que é o que o NL faz...  No Effective Oracle by 
Design o Tom Kyte discute isso com exemplinhos muito bons, eu *** 
RECOMENDO ENFATICAMENTE *** que vc o adquira e o use, pra Ontem
 
 []s
 
  Chiappa
  
--- Em oracle_br@yahoogrupos.com.br, Thiago Lazzarotto 
[EMAIL PROTECTED] escreveu

 Bom dia Lista!
 
 Como sempre Chiappa, boas explicações.
 É verdade que em meu sistema tenho muitas querys com nested loop. 
Muitas 
 mesmo.
 Mas isso não é bom? Ou nem sempre é bom?
 
 Como o meu número de logical reads é muito maior que o physical 
reads, 
 vou começar a investigar
 pelos consumidores de logical reads.
 
 Existe algum valor aceitável para logical reads por query? Por 
exemplo, 
 como vou saber se 1000 logical reads é muito ou pouco?
 Só testando?
 
 Valeu amigos.
 Thiago.
 
 
 jlchiappa escreveu:
 
  --- Em oracle_br@yahoogrupos.com.br 
  mailto:oracle_br%40yahoogrupos.com.br, Thiago Lazzarotto
  thiago.lazzarotto@ escreveu
  
   Pelo SO tem como ver qual o processo que está fazendo mais
   I/O?
   Ou somente pelo banco?
 
  Até tem, mas como disse a análise pelo SO normalmente tem dois
  problemas : o SO não te mostra o histórico , só te mostra os top
  processos , E só se estiverem fazendo o I/O exatamente na hora 
que vc
  está analisando... Até existem ferramentas à parte do SO 
normalmente
  que permitem vc acompanhar o histórico de I/O dum processo, que 
dizem
  pra cada processo quantos % de I/O consumiu (tipo, existiam x
  processos na máquina, foram feitos n I/Os no sistema no total, 
assim
  se um dado processo fez y I/Os isso representa tantos % do I/O
  servido)mas normalmente isso não é parte integrante do SO...
  Então, se omo a maioria dos sistemas o seu basicamente processe o 
que
  veio do banco, I/O do banco está sempre envolvido, recomendaria
  começar olhando no banco, mesmo.
 
 
  
O que notei analisando os statspack é que o número de waits 
não
  aumentou
muito, mas o tempo de wait, esse sim aumentou bastante nas 
últimas
semanas...
 
  Ou seja, teve sim processos/programas/alguma coisa nova que entrou
  (senão nada mudaria), e na média o tempo que os I/Os levam pra ser
  completados aumentou... Tranquilamente pode ser que o(s)
  programa(s)/processos mal-comportados estejam (por exemplo) 
fazendo
  nested loop, aí ele só faz I/Os curtos (PORTANTO não aperecriam em
  TOPs e coisas do tipo), mas são I/Os constantes, cabou um I/O 
pequeno
  imediatamente ele pede outro e logo em seguida outro e logo em
  seguida outro, ou seja, não tem um think time pra dar chance pro 
banco
  servir 

[oracle_br] Re: Performance do banco de dados!

2007-03-22 Por tôpico mcampo132001
Thiago,

Incremente o parametro db_cache_size para utilizar mais memória


Marcos Campos




[oracle_br] Re: Performance do banco de dados!

2007-03-22 Por tôpico jlchiappa
Bem, análise de performance é um trabalho que tem que ser feito 
LOCALMENTE, e que consome tempo pra se fazer, sem dúvida nenhuma um e-
mail curto E escrito à distância não vai te dar solução, mas seguem 
alguns comentários que podem ter ajudar - a maioria deles são tópicos 
que pretendo abordar no Workshop de SQL que a gente citou no ENPO, 
que está em progresso, mas é o seguinte  : veja vc, o uso de 
statspack e tools gerais, que te dão visão geral do banco como um 
todo, é limitado, se a análise rápida e rasteira não te indicou nada 
óbvio nos SQLs top, isso por si só é uma indicação de que vc OU tem 
alguns ** poucos ** processos ruins que bagunçam geral o I/O mas 
são escondidos na análise de top pelos outros muitos bons ou 
neutros, OU que realmente o hardware não está dando conta. Pra vc 
poder concluir o hardware, vc ** TEM QUER SE TER ASSEGURADO ** que 
não há nenhum processo importante que esteja desperdiçando I/O, é 
isso. É aquela história, se vc tiver processos fazendo MONTES e 
MONTES de I/O desnecessários feito loucos, vc pode ter o hardware de 
I/O mais poderoso que quiser que provavelmente ele não dará 
conta. Como normalmente (a não ser nos casos mais raros e fáceis) 
não é o sistema como um todo que está ruim, então NÃO HÁ análise que 
pode ser feita pelo banco para identificar isso... NÃO TEM JEITO, vc 
terá que identificar todos os processos importantes e comuns (veja, 
NÂO ESTOU falando de SQLs , mas sim de PROCESSOS DE NEGÓCIO) e ver 
pra cada um deles se está bem de I/O, se não está fazendo mais I/Os 
que o mínimo necessário... Uma das tools que vc pode usar pra isso 
para os processos que fundamentalmente processem dados vindos dum bd 
Oracle é gerar um trace+tkprof e ver como é a proporção de LIOs x 
linhas efetivamente recuperadas, ** se ** houver algo absolutamente 
desproporcional (tipo, poucas centenas de linhas resultando de 
centenas de milhares de LIOs) esse cara é suspeito de poder ser 
melhorado (seja com alteração nas estruturas físicas, como 
particionamento ou GTTs, resetando  um eventual HWM muito alto, seja 
mesmo re-escrevendo o SQL de modo que faça menos LIOs - por exemplo, 
usando Analytics, usando alguma feature que elimine sub-queries por 
exemplo, seja mudando o plano via stats melhores, seja mesmo via 
hints em ** último caso **). De referência, recomendaria o estudo do 
paper Why You Should Focus on LIOs Instead of PIOs no site 
hotsos.com 
  UMA VEZ realmente feito um esforço ** SÉRIO ** e completo 
pra reduzir I/O e realmente não tendo sido possível, aí sim vc pode 
concluir não há desperdício, e que o subsistema de I/O não está 
adendendo à demanda . E note que pelos motivos citados no paper, o 
alvo é diminuir o total de I/Os Oracle, os LIOs, SE os PIOs estão 
baixos (por causa do cache do storage, por exemplo), ** MAS ** a mal-
comportada da aplicação faz montes de LIOs isso FATALMENTE causa 
waits e FATALMENBET não aparecerá nas tools de SO, talvez dai 
o pelas ferramentas da EMC,vejo que o Storage está sobrando que vc 
diz...
 
 []s
 
   Chiappa
   
--- Em oracle_br@yahoogrupos.com.br, Thiago Lazzarotto 
[EMAIL PROTECTED] escreveu

 Olá pessoal! Tudo bem?
 
 Gostaria que vocês me ajudassem.
 Estamos com problemas de performance no banco de dados. Versao 91R2 
 Enterprise com RAC
 As 2 máquinas são 2xIntel Xeon Dual Core com 12 gb de memória.
 O meu problema está relacionado com I/O.
 Quase todas as sessões ficam fazendo db file sequential read (70% 
do 
 total de wait).
 Vendo pelo top no Linux (RH4.0 U3), percebo que o % de cpu 
aguardando 
 I/O está muito alto (em torno de 40%).
 E ainda tenho cpu idle (mais de 30%)
 
 Não tenho problemas com latches nem locks.
 
 A dúvida é onde está o problema, porque a máquina está esperando 
por I/O 
 e tem CPU sobrando...
 Há alguma análise que pode ser feita pelo banco para identificar 
isso?
 Vcs acham que pode ser problema no Storage? Pelas ferramentas da 
EMC, 
 vejo que o Storage está sobrando...
 
 Agradeço qualquer dica!!!
 
 Obrigado.
 Thiago.
 
 
 [As partes desta mensagem que não continham texto foram removidas]





Re: [oracle_br] Re: Performance do banco de dados!

2007-03-22 Por tôpico Thiago Lazzarotto
O que notei analisando os statspack é que o número de waits não aumentou 
muito, mas o tempo de wait, esse sim aumentou bastante nas últimas 
semanas...

Vou ver o que descubro e mando pro grupo.

Valeu.

jlchiappa escreveu:

 Bem, análise de performance é um trabalho que tem que ser feito
 LOCALMENTE, e que consome tempo pra se fazer, sem dúvida nenhuma um e-
 mail curto E escrito à distância não vai te dar solução, mas seguem
 alguns comentários que podem ter ajudar - a maioria deles são tópicos
 que pretendo abordar no Workshop de SQL que a gente citou no ENPO,
 que está em progresso, mas é o seguinte : veja vc, o uso de
 statspack e tools gerais, que te dão visão geral do banco como um
 todo, é limitado, se a análise rápida e rasteira não te indicou nada
 óbvio nos SQLs top, isso por si só é uma indicação de que vc OU tem
 alguns ** poucos ** processos ruins que bagunçam geral o I/O mas
 são escondidos na análise de top pelos outros muitos bons ou
 neutros, OU que realmente o hardware não está dando conta. Pra vc
 poder concluir o hardware, vc ** TEM QUER SE TER ASSEGURADO ** que
 não há nenhum processo importante que esteja desperdiçando I/O, é
 isso. É aquela história, se vc tiver processos fazendo MONTES e
 MONTES de I/O desnecessários feito loucos, vc pode ter o hardware de
 I/O mais poderoso que quiser que provavelmente ele não dará
 conta. Como normalmente (a não ser nos casos mais raros e fáceis)
 não é o sistema como um todo que está ruim, então NÃO HÁ análise que
 pode ser feita pelo banco para identificar isso... NÃO TEM JEITO, vc
 terá que identificar todos os processos importantes e comuns (veja,
 NÂO ESTOU falando de SQLs , mas sim de PROCESSOS DE NEGÓCIO) e ver
 pra cada um deles se está bem de I/O, se não está fazendo mais I/Os
 que o mínimo necessário... Uma das tools que vc pode usar pra isso
 para os processos que fundamentalmente processem dados vindos dum bd
 Oracle é gerar um trace+tkprof e ver como é a proporção de LIOs x
 linhas efetivamente recuperadas, ** se ** houver algo absolutamente
 desproporcional (tipo, poucas centenas de linhas resultando de
 centenas de milhares de LIOs) esse cara é suspeito de poder ser
 melhorado (seja com alteração nas estruturas físicas, como
 particionamento ou GTTs, resetando um eventual HWM muito alto, seja
 mesmo re-escrevendo o SQL de modo que faça menos LIOs - por exemplo,
 usando Analytics, usando alguma feature que elimine sub-queries por
 exemplo, seja mudando o plano via stats melhores, seja mesmo via
 hints em ** último caso **). De referência, recomendaria o estudo do
 paper Why You Should Focus on LIOs Instead of PIOs no site
 hotsos.com
  UMA VEZ realmente feito um esforço ** SÉRIO ** e completo
 pra reduzir I/O e realmente não tendo sido possível, aí sim vc pode
 concluir não há desperdício, e que o subsistema de I/O não está
 adendendo à demanda . E note que pelos motivos citados no paper, o
 alvo é diminuir o total de I/Os Oracle, os LIOs, SE os PIOs estão
 baixos (por causa do cache do storage, por exemplo), ** MAS ** a mal-
 comportada da aplicação faz montes de LIOs isso FATALMENTE causa
 waits e FATALMENBET não aparecerá nas tools de SO, talvez dai
 o pelas ferramentas da EMC,vejo que o Storage está sobrando que vc
 diz...

 []s

 Chiappa

 --- Em oracle_br@yahoogrupos.com.br 
 mailto:oracle_br%40yahoogrupos.com.br, Thiago Lazzarotto
 [EMAIL PROTECTED] escreveu
 
  Olá pessoal! Tudo bem?
 
  Gostaria que vocês me ajudassem.
  Estamos com problemas de performance no banco de dados. Versao 91R2
  Enterprise com RAC
  As 2 máquinas são 2xIntel Xeon Dual Core com 12 gb de memória.
  O meu problema está relacionado com I/O.
  Quase todas as sessões ficam fazendo db file sequential read (70%
 do
  total de wait).
  Vendo pelo top no Linux (RH4.0 U3), percebo que o % de cpu
 aguardando
  I/O está muito alto (em torno de 40%).
  E ainda tenho cpu idle (mais de 30%)
 
  Não tenho problemas com latches nem locks.
 
  A dúvida é onde está o problema, porque a máquina está esperando
 por I/O
  e tem CPU sobrando...
  Há alguma análise que pode ser feita pelo banco para identificar
 isso?
  Vcs acham que pode ser problema no Storage? Pelas ferramentas da
 EMC,
  vejo que o Storage está sobrando...
 
  Agradeço qualquer dica!!!
 
  Obrigado.
  Thiago.
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 

  



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



Re: [oracle_br] Re: Performance do banco de dados!

2007-03-22 Por tôpico Thiago Lazzarotto
Uma pergunta? Pelo SO tem como ver qual o processo que está fazendo mais 
I/O?
Ou somente pelo banco?

Obrigado
Thiago.

Thiago Lazzarotto escreveu:

 O que notei analisando os statspack é que o número de waits não aumentou
 muito, mas o tempo de wait, esse sim aumentou bastante nas últimas
 semanas...

 Vou ver o que descubro e mando pro grupo.

 Valeu.

 jlchiappa escreveu:

  Bem, análise de performance é um trabalho que tem que ser feito
  LOCALMENTE, e que consome tempo pra se fazer, sem dúvida nenhuma um e-
  mail curto E escrito à distância não vai te dar solução, mas seguem
  alguns comentários que podem ter ajudar - a maioria deles são tópicos
  que pretendo abordar no Workshop de SQL que a gente citou no ENPO,
  que está em progresso, mas é o seguinte : veja vc, o uso de
  statspack e tools gerais, que te dão visão geral do banco como um
  todo, é limitado, se a análise rápida e rasteira não te indicou nada
  óbvio nos SQLs top, isso por si só é uma indicação de que vc OU tem
  alguns ** poucos ** processos ruins que bagunçam geral o I/O mas
  são escondidos na análise de top pelos outros muitos bons ou
  neutros, OU que realmente o hardware não está dando conta. Pra vc
  poder concluir o hardware, vc ** TEM QUER SE TER ASSEGURADO ** que
  não há nenhum processo importante que esteja desperdiçando I/O, é
  isso. É aquela história, se vc tiver processos fazendo MONTES e
  MONTES de I/O desnecessários feito loucos, vc pode ter o hardware de
  I/O mais poderoso que quiser que provavelmente ele não dará
  conta. Como normalmente (a não ser nos casos mais raros e fáceis)
  não é o sistema como um todo que está ruim, então NÃO HÁ análise que
  pode ser feita pelo banco para identificar isso... NÃO TEM JEITO, vc
  terá que identificar todos os processos importantes e comuns (veja,
  NÂO ESTOU falando de SQLs , mas sim de PROCESSOS DE NEGÓCIO) e ver
  pra cada um deles se está bem de I/O, se não está fazendo mais I/Os
  que o mínimo necessário... Uma das tools que vc pode usar pra isso
  para os processos que fundamentalmente processem dados vindos dum bd
  Oracle é gerar um trace+tkprof e ver como é a proporção de LIOs x
  linhas efetivamente recuperadas, ** se ** houver algo absolutamente
  desproporcional (tipo, poucas centenas de linhas resultando de
  centenas de milhares de LIOs) esse cara é suspeito de poder ser
  melhorado (seja com alteração nas estruturas físicas, como
  particionamento ou GTTs, resetando um eventual HWM muito alto, seja
  mesmo re-escrevendo o SQL de modo que faça menos LIOs - por exemplo,
  usando Analytics, usando alguma feature que elimine sub-queries por
  exemplo, seja mudando o plano via stats melhores, seja mesmo via
  hints em ** último caso **). De referência, recomendaria o estudo do
  paper Why You Should Focus on LIOs Instead of PIOs no site
  hotsos.com
   UMA VEZ realmente feito um esforço ** SÉRIO ** e completo
  pra reduzir I/O e realmente não tendo sido possível, aí sim vc pode
  concluir não há desperdício, e que o subsistema de I/O não está
  adendendo à demanda . E note que pelos motivos citados no paper, o
  alvo é diminuir o total de I/Os Oracle, os LIOs, SE os PIOs estão
  baixos (por causa do cache do storage, por exemplo), ** MAS ** a mal-
  comportada da aplicação faz montes de LIOs isso FATALMENTE causa
  waits e FATALMENBET não aparecerá nas tools de SO, talvez dai
  o pelas ferramentas da EMC,vejo que o Storage está sobrando que vc
  diz...
 
  []s
 
  Chiappa
 
  --- Em oracle_br@yahoogrupos.com.br 
 mailto:oracle_br%40yahoogrupos.com.br
  mailto:oracle_br%40yahoogrupos.com.br, Thiago Lazzarotto
  [EMAIL PROTECTED] escreveu
  
   Olá pessoal! Tudo bem?
  
   Gostaria que vocês me ajudassem.
   Estamos com problemas de performance no banco de dados. Versao 91R2
   Enterprise com RAC
   As 2 máquinas são 2xIntel Xeon Dual Core com 12 gb de memória.
   O meu problema está relacionado com I/O.
   Quase todas as sessões ficam fazendo db file sequential read (70%
  do
   total de wait).
   Vendo pelo top no Linux (RH4.0 U3), percebo que o % de cpu
  aguardando
   I/O está muito alto (em torno de 40%).
   E ainda tenho cpu idle (mais de 30%)
  
   Não tenho problemas com latches nem locks.
  
   A dúvida é onde está o problema, porque a máquina está esperando
  por I/O
   e tem CPU sobrando...
   Há alguma análise que pode ser feita pelo banco para identificar
  isso?
   Vcs acham que pode ser problema no Storage? Pelas ferramentas da
  EMC,
   vejo que o Storage está sobrando...
  
   Agradeço qualquer dica!!!
  
   Obrigado.
   Thiago.
  
  
   [As partes desta mensagem que não continham texto foram removidas]
  
 
 

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

  



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



[oracle_br] Re: Performance do banco de dados!

2007-03-22 Por tôpico jlchiappa
--- Em oracle_br@yahoogrupos.com.br, Thiago Lazzarotto
[EMAIL PROTECTED] escreveu

 Pelo SO tem como ver qual o processo que está fazendo mais 
 I/O?
 Ou somente pelo banco?

Até tem, mas como disse a análise pelo SO normalmente tem dois
problemas : o SO não te mostra o histórico , só te mostra os top
processos , E só se estiverem fazendo o I/O exatamente na hora que vc
está analisando... Até existem ferramentas à parte do SO normalmente
que permitem vc acompanhar o histórico de I/O dum processo, que dizem
pra cada processo quantos % de I/O consumiu (tipo, existiam x
processos na máquina, foram feitos n I/Os no sistema no total, assim
se um dado processo fez y I/Os isso representa tantos % do I/O
servido)mas normalmente isso não é parte integrante do SO...
 Então, se omo a maioria dos sistemas o seu basicamente processe o que
veio do banco, I/O do banco está sempre envolvido, recomendaria
começar olhando no banco, mesmo.
 


 
  O que notei analisando os statspack é que o número de waits não
aumentou
  muito, mas o tempo de wait, esse sim aumentou bastante nas últimas
  semanas...

Ou seja, teve sim processos/programas/alguma coisa nova que entrou
(senão nada mudaria), e na média o tempo que os I/Os levam pra ser
completados aumentou... Tranquilamente pode ser que o(s)
programa(s)/processos mal-comportados estejam (por exemplo) fazendo
nested loop, aí ele só faz I/Os curtos (PORTANTO não aperecriam em
TOPs e coisas do tipo), mas são I/Os constantes, cabou um  I/O pequeno
 imediatamente ele pede outro e logo em seguida outro e logo em
seguida outro, ou seja, não tem um think time pra dar chance pro banco
servir outro processo Um cara desse vc só pega NO HISTÓRICO,
anaálise com vmstat/top/glance/similares é um instantãneo, não serviria.
 É como eu disse, análise de processo como um todo E analisar os
principais processos Acho que seria MUITO muito interessante aí
tentar se confirmar a performance do sub-sistema de disco per se, tipo
: com o banco e aplicação parados vc faz uma medida, sobe o banco e
ainda sem usuários faz outra, aí cfrme os usuários vão entrando vc vai
fazendo novas medidas, E finalmente quando em modo normal de processo
faz mais uma...  http://www.acnc.com/benchmarks.html tem algumas tools
free pra isso, das que ele cita quando eu precisei uma vez eu usei o
iozone.  Mas isso é informação complementar, pra mim o pono aí AINDA é
 processo fazendo LIOs feito doido.
 E só complementando : não só eu como o resto do pessoal que tá
conversando com vc, estamos todos focando em I/O - de repente
tranquilamente PODE ser que hajam outras questões aí... Eu sugiro que
vc passe o teu trace 10046 dos principais processos também pela
ferramenta ORASRP, ele monta um relatóriozinho mais detalhado do que o
tkprof, de repente outras coisas podem aparecer. Tem uma versão nova
dela em http://oracledba.ru/orasrp/

[]s

 Chiappa



[oracle_br] Re: Performance do Banco

2007-02-22 Por tôpico hribeiro01

 Glauber,

   Analisando superficialmente, o parametro
_allow_resetlogs_corruption esta habilitado.. 
   Dê uma procurada no metalink sobre esse parametro...

 Abs

--- Em oracle_br@yahoogrupos.com.br, Glauber Moisés Garcia
[EMAIL PROTECTED] escreveu

 Pessoal,
 
 sou novo aqui no grupo e já vou encher o saco da turma !!!
 
 Sei pra que realizar tunning de um banco não existe receita...
 Algum tempo atrás eu tinha conseguido uns script´s e com eles umas
 explicações de como analisar os indicadores gerados pelos scripts.
 Com eles fiz alterações nos parametros de SGA e melhoraram muito !.
 Só q perdi esses selects. E agora não consigo encontrar.(Não com as
dicas de análise)
 Se alguém tiver algum material (em portugues) ou possa me auxiliar.
 
 Tenho um oracle 9i rodando em um HP-ux com 1Gb de memória. 
 O servidor não é dedicado. O sistema utilizado não realiza inserção
maciça 
 de dados. Porém, faz muita consulta ao banco.
 Coloquei os parametros do banco. Se tiver alguém q possa me ajudar !
 
  tracefile_identifier 
  
   processes 200 
   sessions 550 
   timed_statistics TRUE 
   timed_os_statistics 0 
   resource_limit FALSE 
   license_max_sessions 0 
   license_sessions_warning 0 
   cpu_count 1 
   instance_groups 
  
   event 
  
   shared_pool_size 637534208 
   sga_max_size 848260384 
   shared_pool_reserved_size 5242880 
   large_pool_size 67108864 
   java_pool_size 16777216 
   java_soft_sessionspace_limit 0 
   java_max_sessionspace_size 0 
   pre_page_sga FALSE 
   shared_memory_address 0 
   hi_shared_memory_address 0 
   use_indirect_data_buffers FALSE 
   lock_sga FALSE 
   spfile 
  
   lock_name_space 
  
   enqueue_resources 1200 
   trace_enabled TRUE 
   nls_language AMERICAN 
   nls_territory AMERICA 
   nls_sort 
  
   nls_date_language 
  
   nls_date_format 
  
   nls_currency 
  
   nls_numeric_characters 
  
   nls_iso_currency 
  
   nls_calendar 
  
   nls_time_format 
  
   nls_timestamp_format 
  
   nls_time_tz_format 
  
   nls_timestamp_tz_format 
  
   nls_dual_currency 
  
   nls_comp 
  
   nls_length_semantics BYTE 
   nls_nchar_conv_excp FALSE 
   filesystemio_options asynch 
   disk_asynch_io FALSE 
   tape_asynch_io FALSE 
   dbwr_io_slaves 0 
   backup_tape_io_slaves FALSE 
   resource_manager_plan 
  
   cluster_interconnects 
  
   file_mapping FALSE 
   active_instance_count 
  
   control_files /bdoracle/TASY/ct3/control04.ctl 
   db_file_name_convert 
  
   log_file_name_convert 
  
   db_block_buffers 0 
   db_block_checksum TRUE 
   db_block_size 8192 
   db_writer_processes 1 
   db_keep_cache_size 0 
   db_recycle_cache_size 0 
   db_2k_cache_size 0 
   db_4k_cache_size 0 
   db_8k_cache_size 0 
   db_16k_cache_size 0 
   db_32k_cache_size 0 
   db_cache_size 16777216 
   buffer_pool_keep 
  
   buffer_pool_recycle 
  
   db_cache_advice ON 
   max_commit_propagation_delay 700 
   compatible 9.2.0.0.0 
   remote_archive_enable true 
   log_archive_start TRUE 
   log_archive_dest /bdoracle/TASY/arc 
   log_archive_duplex_dest 
  
   log_archive_dest_1 
  
   log_archive_dest_2 
  
   log_archive_dest_3 
  
   log_archive_dest_4 
  
   log_archive_dest_5 
  
   log_archive_dest_6 
  
   log_archive_dest_7 
  
   log_archive_dest_8 
  
   log_archive_dest_9 
  
   log_archive_dest_10 
  
   log_archive_dest_state_1 enable 
   log_archive_dest_state_2 enable 
   log_archive_dest_state_3 enable 
   log_archive_dest_state_4 enable 
   log_archive_dest_state_5 enable 
   log_archive_dest_state_6 enable 
   log_archive_dest_state_7 enable 
   log_archive_dest_state_8 enable 
   log_archive_dest_state_9 enable 
   log_archive_dest_state_10 enable 
   log_archive_max_processes 2 
   log_archive_min_succeed_dest 1 
   standby_archive_dest ?/dbs/arch 
   log_archive_trace 0 
   fal_server 
  
   fal_client 
  
   log_archive_format arch_%S.log 
   log_buffer 75497472 
   log_checkpoint_interval 6144 
   log_checkpoint_timeout 1800 
   archive_lag_target 0 
   log_parallelism 1 
   db_files 500 
   db_file_multiblock_read_count 32 
   read_only_open_delayed FALSE 
   cluster_database FALSE 
   parallel_server FALSE 
   parallel_server_instances 1 
   cluster_database_instances 1 
   db_create_file_dest 
  
   db_create_online_log_dest_1 
  
   db_create_online_log_dest_2 
  
   db_create_online_log_dest_3 
  
   

[oracle_br] Re: Performance em Insert

2006-12-01 Por tôpico jlchiappa
Seguinte : sim, por DEFINIÇÃO quando vc cria um índice vc em muitos 
casos GANHA performance nas consultas, mas isso TEM A OUTRA FACE de 
implicar em diminuição de performance dos DMLs, já que a CADA DML 
feito o índice tem que ser atualizado (e índices são estruturas 
COMPLEXAS, que obrigatoriamente TEM QUE estarem fisicamente 
ordenados, é custoso atualizar índices) - isso está claramente 
exposto no manual Oracle Concepts, que recomendo o estudo.
 Muito bem, continuando : no caso em questão vc está querendo 
introduzir um GRANDE volume de dados, PORTANTO isso é uma CARGA DE 
DADOS, uma rotina onde (claro) vc quer ter a maior performance 
possível em DMLs para que ela termine o quanto antes, pois NINGUÉM 
tem acesso aos dados antes deles carregarem... Em rotinas do tipo, 
SIM, é COMUM e RECOMENDADO vc desabilitar índices e constraints, 
justamente para EVITAR de pagar o preço do overhead a cada DML (ao 
final da rotina vc rebuilda os índices - em paralelo e nologging se 
possível -, desta menaira pagando o preço duma vez só, á vista tem 
desconto :_) , isso se deve PRINCIPALMENTE ao fato de que, SEM 
índices presentes, vc tem acesso ao modo NOLOGGING, que muitas vezes 
representa um ABSURDAMENTE ENORME ganho em performance, é técnica 
PADRÂO em bancos DW/batch, pesquise em http://asktom.oracle.com que 
vc acha diversos artigos e testes demonstrando isso.
 
== Afora esse ponto, que vc DEVERÀ SIM implementar se minimamente 
possível, observo que  :

- a técnica de 

insert into tabela values ...
exception when dup_val_on_index
update tabela set 

== é a PIOR DAS PIORES possíveis, pois vc FAZ o insert, gerando redo 
e undo, que se for duplicação VAI ser desfeito, gerando mais redo e 
tendo que ler o undo, ALTOS I/Os aí... Sem sombra de dúvida, se a sua 
versão de banco já tem e aceita, o comando SQL de MERGE seria ULTRA 
mais eficiente

- preferencialmente faz essa carga com uma ferramenta que gere SQL e 
envie diretamente esse SQL pro banco, em PL/SQL a cada SQL enviado 
pro banco vc PAGA UM PREÇO na forma de context switch, pra uns 
poucoas registros isso não é nada, MAS pra um grande volume 
rapidamente isso se torna HORRÍVEL, SQL direto é a melhor solução : 
se a carga é de um aqruivo-texto (tipicamente é) no banco 9i em 
diante vc tem INCLUSIVE a chance de usar o arquivo-texto como se 
fosse uma tabela, com a opção de EXTERNAL TABLE, aí o MERGE seria 
ainda mais eficiente...

e finalmente : SE realmente for (por qquer motivo) absolutamente, 
completamente, inequivocadamente impossível vc fazer em SQL apenas e 
tiver que usar PL/SQL, que AO MENOS vc use array processing e bulk 
collect, é isso.


[]s

 Chiappa
 
--- Em oracle_br@yahoogrupos.com.br, rbr72 [EMAIL PROTECTED] escreveu

 Pessoal, tava analisando um problema num cliente, e percebi que o 
 processo mais demorado era um insert executado várias vezes numa 
 tabela. A lógica era mais ou menos essa abaixo, se já existia um 
 dado na tabela, era feito um update de valores.
 
 insert into tabela values ...
 exception when dup_val_on_index
 update tabela set ...
 
 No trace gerado pelo cliente, ele tentou executar 56000 inserts, 
 foram gravados somente 56 linhas, o resto foi tudo pro update. O 
 problema que pra executar os 56000 inserts demorou 300 segundos, os 
 updates foram bem rápidos.
 
 Fazendo os testes, o problema era a primary key, eu desabilitei 
ela, 
 criei um indice normal, e fiz a verificacao se o registro existe, 
 faco update, senão, insert. Desse modo ficou bem rápido também.
 
 O que eu gostaria de saber é a explicação pra isso, sei que, com a 
 primary key, é necessário atualizar o arquivo de indice a cada 
 insert. Mas no cliente só gravou 56 inserts, então conclui que o 
 problema em alguma verificação que a primary key força o oracle a 
 fazer. Alguém sabe o que o Oracle realiza nos inserts, e o porque 
da 
 demora? Outra coisa, tem como fazer o insert ficar mais rápido ou 
 uma solução melhor do que desabilitiar a pk? Se alguém tiver idéia 
 melhor ajuda, porque vou ter que alterar um monte de procedures. :-)
 
 Obrigado





Re: [oracle_br] Re: Performance em Insert

2006-12-01 Por tôpico Wagner Netto
***
Sua mensagem foi verificada pelo InterScan MSS.
***-***


Boa tarde Chiappa vc conhece algum conversor de bancos freeware MYSQL para 
Oracle.

at

Wagner Netto
Dimper Comercial Ltda
Sagra Produtos Farmaceuticos Ltda
16 2101 9195
  - Original Message -
  From: jlchiappa
  To: oracle_br@yahoogrupos.com.br
  Sent: Friday, December 01, 2006 2:19 PM
  Subject: [oracle_br] Re: Performance em Insert


***
Sua mensagem foi verificada pelo InterScan MSS.
***-***

  
  Seguinte : sim, por DEFINIÇÃO quando vc cria um índice vc em muitos
  casos GANHA performance nas consultas, mas isso TEM A OUTRA FACE de
  implicar em diminuição de performance dos DMLs, já que a CADA DML
  feito o índice tem que ser atualizado (e índices são estruturas
  COMPLEXAS, que obrigatoriamente TEM QUE estarem fisicamente
  ordenados, é custoso atualizar índices) - isso está claramente
  exposto no manual Oracle Concepts, que recomendo o estudo.
  Muito bem, continuando : no caso em questão vc está querendo
  introduzir um GRANDE volume de dados, PORTANTO isso é uma CARGA DE
  DADOS, uma rotina onde (claro) vc quer ter a maior performance
  possível em DMLs para que ela termine o quanto antes, pois NINGUÉM
  tem acesso aos dados antes deles carregarem... Em rotinas do tipo,
  SIM, é COMUM e RECOMENDADO vc desabilitar índices e constraints,
  justamente para EVITAR de pagar o preço do overhead a cada DML (ao
  final da rotina vc rebuilda os índices - em paralelo e nologging se
  possível -, desta menaira pagando o preço duma vez só, á vista tem
  desconto :_) , isso se deve PRINCIPALMENTE ao fato de que, SEM
  índices presentes, vc tem acesso ao modo NOLOGGING, que muitas vezes
  representa um ABSURDAMENTE ENORME ganho em performance, é técnica
  PADRÂO em bancos DW/batch, pesquise em http://asktom.oracle.com que
  vc acha diversos artigos e testes demonstrando isso.

  == Afora esse ponto, que vc DEVERÀ SIM implementar se minimamente
  possível, observo que :

  - a técnica de

  insert into tabela values ...
  exception when dup_val_on_index
  update tabela set

  == é a PIOR DAS PIORES possíveis, pois vc FAZ o insert, gerando redo
  e undo, que se for duplicação VAI ser desfeito, gerando mais redo e
  tendo que ler o undo, ALTOS I/Os aí... Sem sombra de dúvida, se a sua
  versão de banco já tem e aceita, o comando SQL de MERGE seria ULTRA
  mais eficiente

  - preferencialmente faz essa carga com uma ferramenta que gere SQL e
  envie diretamente esse SQL pro banco, em PL/SQL a cada SQL enviado
  pro banco vc PAGA UM PREÇO na forma de context switch, pra uns
  poucoas registros isso não é nada, MAS pra um grande volume
  rapidamente isso se torna HORRÍVEL, SQL direto é a melhor solução :
  se a carga é de um aqruivo-texto (tipicamente é) no banco 9i em
  diante vc tem INCLUSIVE a chance de usar o arquivo-texto como se
  fosse uma tabela, com a opção de EXTERNAL TABLE, aí o MERGE seria
  ainda mais eficiente...

  e finalmente : SE realmente for (por qquer motivo) absolutamente,
  completamente, inequivocadamente impossível vc fazer em SQL apenas e
  tiver que usar PL/SQL, que AO MENOS vc use array processing e bulk
  collect, é isso.

  []s

  Chiappa

  --- Em oracle_br@yahoogrupos.com.br, rbr72 [EMAIL PROTECTED] escreveu
  
   Pessoal, tava analisando um problema num cliente, e percebi que o
   processo mais demorado era um insert executado várias vezes numa
   tabela. A lógica era mais ou menos essa abaixo, se já existia um
   dado na tabela, era feito um update de valores.
  
   insert into tabela values ...
   exception when dup_val_on_index
   update tabela set ...
  
   No trace gerado pelo cliente, ele tentou executar 56000 inserts,
   foram gravados somente 56 linhas, o resto foi tudo pro update. O
   problema que pra executar os 56000 inserts demorou 300 segundos, os
   updates foram bem rápidos.
  
   Fazendo os testes, o problema era a primary key, eu desabilitei
  ela,
   criei um indice normal, e fiz a verificacao se o registro existe,
   faco update, senão, insert. Desse modo ficou bem rápido também.
  
   O que eu gostaria de saber é a explicação pra isso, sei que, com a
   primary key, é necessário atualizar o arquivo de indice a cada
   insert. Mas no cliente só gravou 56 inserts, então conclui que o
   problema em alguma verificação que a primary key força o oracle a
   fazer. Alguém sabe o que o Oracle realiza nos inserts, e o porque
  da
   demora? Outra coisa, tem como fazer o insert ficar mais rápido ou
   uma solução melhor do que desabilitiar a pk? Se alguém tiver idéia
   melhor ajuda, porque vou ter que alterar um monte de procedures. :-)
  
   Obrigado
  



  


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



Re: [oracle_br] Re: Performance de máquina

2006-08-30 Por tôpico Rodrigo Rocha
Valeu pelo bizú!!

Rocha






jlchiappa escreveu:

 Não dá pra adivinhar assim à distância, vc terá que monitorar pela
 v$sesstat e/ou pelas tools do SO (iirc top ou similar no aix), mas
 algumas possibilidades :

  9.2.0.1

 houve LOTES e LOTES de bugs no release inicial do 9i e do 10g, e essa
 versão 9.2.0.1 indica que vc NÂO aplicou nenhum patch, acione o
 Suporte, verifique a aplicabilidade  e providencie isso pra quanto
 antes. Essa é uma grande possibilidade.


  .. e 4Gb de memória. ... Estou com 3Gb de max SGA 


 ==. stop aí colega : via de regra sempre se sugere que a SGA seja no
 máximo coisa de uns 30% ou 40% (ou em casos raros 50%) da RAM total,
 JUSTAMENTE para que SOBRE bastante RAM a ser alocada no momento da
 conexão dedicada (que vc não diz, mas IMAGINO que deve ser o caso) :
 como vc sabe, nesse caso a RAM alocada em cada conexão NÂO vem da
 SGA, e sim da RAM viva do sistema. Em sendo assim, algo está
 QUESTIONÁVEL no mínimo, 3 Gb de um total de 4 Gb dão 75% ... Será que
 de repente esse banco não está bem mal configurado que até as tarefas
 rotineiras que o banco faz (como geração de undo/rollback, controle
 de transações, de storage, etc) estão se arrastando e consumindo
 muita CPU e talvez até I/O ??

 []s

 Chiappa
 --- Em oracle_br@yahoogrupos.com.br, rocharolr [EMAIL PROTECTED]
 escreveu
 
  Srs,
 
  Estou com o banco 9.2.0.1 instalado numa máquina AIX4.3.3 com dois
 processadores de 450MHz e 4Gb de memória.
 
  Estou com 3Gb de max SGA e 17G de swap disponível.
 
  Para minha surpresa, estou com o consumo de CPU a 100% mesmo com
 poucos usuários conectados (150 inativos e 20 ativos).
 
  Alguém pode dar uma luz sobre o pq desse consumo de CPU?
 
  Grato.
 
  Rocha
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 





 



No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.405 / Virus Database: 268.11.6/428 - Release Date: 25/8/2006
  




--
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: Performance de Query

2006-08-24 Por tôpico jorgedonato2001
Marcio,

segue o Tkprof:


###

SELECT BOP_RG_FONEMA.ID_RG,
 BOP_RG_FONEMA.FONEMA,
 BOP_RG.NM_NOME,
 BOP_RG.NM_MAE,
 BOP_RG.DT_NASCIMENTO
FROM BOP_RG_FONEMA,
BOP_RG
  WHERE BOP_RG_FONEMA.FONEMA LIKE '%'||:b2 ||'%'
 AND BOP_RG.ID_RG = BOP_RG_FONEMA.ID_RG

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
Fetch38519 29.74 181.03 122399  72271  0 
577757
--- --   -- -- -- -- 
--
total38521 29.74 181.03 122399  72271  0 
577757

Misses in library cache during parse: 1
Optimizer goal: CHOOSE
Parsing user id: 5  (SYSTEM)

Rows Row Source Operation
---  ---
 577757  HASH JOIN
 577757   INDEX RANGE SCAN IDX2_BOP_RG_FONEMA (object id 48230)
2249333   INDEX FAST FULL SCAN IDX5_BOP_RG (object id 48158)


Rows Execution Plan
---  ---
  0  SELECT STATEMENT   GOAL: CHOOSE
 577757   HASH JOIN
 577757INDEX   GOAL: ANALYZED (RANGE SCAN) OF 'IDX2_BOP_RG_FONEMA'
   (NON-UNIQUE)
2249333INDEX   GOAL: ANALYZED (FAST FULL SCAN) OF 'IDX5_BOP_RG'
   (NON-UNIQUE)

##

Att,
Jorge Donato

--- Em oracle_br@yahoogrupos.com.br, Marcio Portes
[EMAIL PROTECTED] escreveu

 Queria ver o tkprof dessa query.
 bom, 3 sugestões.
 
 Atualiza as estatísticas com histogramas nas colunas indexadas.
 
 select fonema.id_rg,
fonema.fonema,
rg.nm_nome,
rg.nm_mae,
rg.dt_nascimento
   from (
 select id_rg,
fonema,
   from bop_rg_fonema
  where fonema like '%'||:b2 ||'%'
) fonema,
bop_rg rg
  where rg.id_rg = fonema.id_rg
 /
 
 e criar um índice em bop_rg(id_rg), para tentar conter o range scan de 2
 milhões de linhas na bop_rg.
 
 
 On 8/23/06, jorgedonato2001 [EMAIL PROTECTED] wrote:
 
  Tenho a seguinte situacão:
 
  SQL VARIABLE b1 number;
  SQL VARIABLE b2 varchar2(85);
  SQL VARIABLE b3 number;
  SQL VARIABLE b4 number;
  SQL
  SQL EXECUTE :b1 := 9;
 
  PL/SQL procedure successfully completed.
 
  Elapsed: 00:00:00.01
  SQL EXECUTE :b2 := 'MR';
 
  PL/SQL procedure successfully completed.
 
  Elapsed: 00:00:00.00
  SQL EXECUTE :b3 := 999;
 
  PL/SQL procedure successfully completed.
 
  Elapsed: 00:00:00.00
  SQL EXECUTE :b4 := 1;
 
  PL/SQL procedure successfully completed.
 
  Elapsed: 00:00:00.01
  SQL
  SQL SELECT BOP_RG_FONEMA.ID_RG,
2   BOP_RG_FONEMA.FONEMA,
3   BOP_RG.NM_NOME,
4   BOP_RG.NM_MAE,
5   BOP_RG.DT_NASCIMENTO
6  FROM BOP_RG_FONEMA,
7  BOP_RG
8WHERE BOP_RG_FONEMA.FONEMA LIKE '%'||:b2 ||'%'
9   AND BOP_RG.ID_RG = BOP_RG_FONEMA.ID_RG;
 
  577757 rows selected.
 
  Elapsed: 00:05:19.83
 
  Execution Plan
  --
 0  SELECT STATEMENT Optimizer=CHOOSE (Cost=12848 Card=112467 By
tes=22718334)
 
 10   HASH JOIN (Cost=12848 Card=112467 Bytes=22718334)
 21 INDEX (RANGE SCAN) OF 'IDX2_BOP_RG_FONEMA' (NON-UNIQUE)
(Cost=88 Card=112467 Bytes=2024406)
 
 31 INDEX (FAST FULL SCAN) OF 'IDX5_BOP_RG' (NON-UNIQUE) (Co
st=6010 Card=2249333 Bytes=413877272)
 
 
 
 
 
  Statistics
  --
0  recursive calls
0  db block gets
72271  consistent gets
98716  physical reads
0  redo size
118090042  bytes sent via SQL*Net to client
   269853  bytes received via SQL*Net from client
38519  SQL*Net roundtrips to/from client
0  sorts (memory)
0  sorts (disk)
   577757  rows processed
 
 
  Tenho os seguintes índices
 
  CREATE INDEX EBOP.IDX5_BOP_RG ON EBOP.BOP_RG
  (NM_NOME, ID_RG, NM_MAE, DT_NASCIMENTO)
  Distinct Keys:2249329
 
  CREATE INDEX EBOP.IDX2_BOP_RG_FONEMA ON EBOP.BOP_RG_FONEMA
  (FONEMA, ID_RG)
  Distinct Keys:2249330
 
  Tabela BOP_RG:
  2249333 Linhas
 
  Tabela BOP_RG_FONEMA:
  2249330 Linhas
 
 
  O tempo esta muito alto, alguma ídeia para melhorar essa query?
 
  Att,
  Jorge Donato
 
 
 
 
 
 
  
 
 
 
 
 -- 
 Marcio Portes
 Material Tecnico em Portugues - http://mportes.blogspot.com
 Practical Learning Oracle -
 http://mportes.blogspot.com/2006/02/practical-learning-oracle.html
 
 
 [As partes desta mensagem que não continham texto foram removidas]







--
Atenção! As 

[oracle_br] Re: Performance de Query

2006-08-24 Por tôpico jorgedonato2001
Valeu Chiappa, vou estudar e estar as suas sugestões.

Obrigado,
Jorge Donato

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

 pesquisa com %nnn% o melhor que vc pode obter normalmente é um range 
 scan mesmo, não tem muito jeito , e o range vai ser BEM largo, vc TEM 
 que procurar praticamente no índice todo , já que o % inicial 
 significa qquer coisa antes do argumento... Será que REALMENTE não dá 
 pra especificar sem o % inicial ?? Se realmente tiver que, pra um 
 caso desses ou vc usa o CONTAINS num índice text, ou tem um índice de 
 função que indexa só os caras que contém a chave de pesquisa, como 
 mostrado em http://asktom.oracle.com/pls/ask/f?
 p=4950:8:F4950_P8_DISPLAYID:37336026927381 . Uma outra opção, se 
 a pesquisa tiver que ser repetida várias vezes na mesma sessão, pode 
 ser ao invés de se ter o sub-conjunto menor dos regs que atendem à 
 chave de pesquisa indexados num índice de função, talvez possa ser te-
 los numa GTT populada pelo programa, se o custo pra resolver 
 BOP_RG.ID_RG = BOP_RG_FONEMA.ID_RG não for tão alto...
 
 []s
 
  Chiappa
 --- Em oracle_br@yahoogrupos.com.br, jorgedonato2001 [EMAIL PROTECTED] 
 escreveu
 
  Tenho a seguinte situacão:
  
  SQL VARIABLE b1 number;
  SQL VARIABLE b2 varchar2(85);
  SQL VARIABLE b3 number;
  SQL VARIABLE b4 number;
  SQL 
  SQL EXECUTE :b1 := 9;
  
  PL/SQL procedure successfully completed.
  
  Elapsed: 00:00:00.01
  SQL EXECUTE :b2 := 'MR';
  
  PL/SQL procedure successfully completed.
  
  Elapsed: 00:00:00.00
  SQL EXECUTE :b3 := 999;
  
  PL/SQL procedure successfully completed.
  
  Elapsed: 00:00:00.00
  SQL EXECUTE :b4 := 1;
  
  PL/SQL procedure successfully completed.
  
  Elapsed: 00:00:00.01
  SQL 
  SQL SELECT BOP_RG_FONEMA.ID_RG,
2   BOP_RG_FONEMA.FONEMA,
3   BOP_RG.NM_NOME,
4   BOP_RG.NM_MAE,
5   BOP_RG.DT_NASCIMENTO
6  FROM BOP_RG_FONEMA,
7  BOP_RG
8WHERE BOP_RG_FONEMA.FONEMA LIKE '%'||:b2 ||'%'
9   AND BOP_RG.ID_RG = BOP_RG_FONEMA.ID_RG;
  
  577757 rows selected.
  
  Elapsed: 00:05:19.83
  
  Execution Plan
  --
 0  SELECT STATEMENT Optimizer=CHOOSE (Cost=12848 Card=112467 
 By
tes=22718334)
  
 10   HASH JOIN (Cost=12848 Card=112467 Bytes=22718334)
 21 INDEX (RANGE SCAN) OF 'IDX2_BOP_RG_FONEMA' (NON-
 UNIQUE)
(Cost=88 Card=112467 Bytes=2024406)
  
 31 INDEX (FAST FULL SCAN) OF 'IDX5_BOP_RG' (NON-UNIQUE) 
 (Co
st=6010 Card=2249333 Bytes=413877272)
  
  
  
  
  
  Statistics
  --
0  recursive calls
0  db block gets
72271  consistent gets
98716  physical reads
0  redo size
118090042  bytes sent via SQL*Net to client
   269853  bytes received via SQL*Net from client
38519  SQL*Net roundtrips to/from client
0  sorts (memory)
0  sorts (disk)
   577757  rows processed
  
  
  Tenho os seguintes índices
  
  CREATE INDEX EBOP.IDX5_BOP_RG ON EBOP.BOP_RG
  (NM_NOME, ID_RG, NM_MAE, DT_NASCIMENTO)
  Distinct Keys:2249329
  
  CREATE INDEX EBOP.IDX2_BOP_RG_FONEMA ON EBOP.BOP_RG_FONEMA
  (FONEMA, ID_RG)
  Distinct Keys:2249330
  
  Tabela BOP_RG:
  2249333 Linhas
  
  Tabela BOP_RG_FONEMA:
  2249330 Linhas
  
  
  O tempo esta muito alto, alguma ídeia para melhorar essa query?
  
  Att,
  Jorge Donato
 







--
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: Performance de Query

2006-08-24 Por tôpico jorgedonato2001
Gabriel, 

estão sim.

Att,
Jorge Donato

--- Em oracle_br@yahoogrupos.com.br, Teixeira, Gabriel (WMI, Brazil -
Sao Paulo) [EMAIL PROTECTED] escreveu

 As estatísticas estão atualizadas?
 
   _  
 
 From: jorgedonato2001 [mailto:[EMAIL PROTECTED] 
 Sent: quarta-feira, 23 de agosto de 2006 15:01
 To: oracle_br@yahoogrupos.com.br
 Subject: [oracle_br] Performance de Query
 
 
 Tenho a seguinte situacão:
 
 SQL VARIABLE b1 number;
 SQL VARIABLE b2 varchar2(85);
 SQL VARIABLE b3 number;
 SQL VARIABLE b4 number;
 SQL 
 SQL EXECUTE :b1 := 9;
 
 PL/SQL procedure successfully completed.
 
 Elapsed: 00:00:00.01
 SQL EXECUTE :b2 := 'MR';
 
 PL/SQL procedure successfully completed.
 
 Elapsed: 00:00:00.00
 SQL EXECUTE :b3 := 999;
 
 PL/SQL procedure successfully completed.
 
 Elapsed: 00:00:00.00
 SQL EXECUTE :b4 := 1;
 
 PL/SQL procedure successfully completed.
 
 Elapsed: 00:00:00.01
 SQL 
 SQL SELECT BOP_RG_FONEMA.ID_RG,
   2   BOP_RG_FONEMA.FONEMA,
   3   BOP_RG.NM_NOME,
   4   BOP_RG.NM_MAE,
   5   BOP_RG.DT_NASCIMENTO
   6  FROM BOP_RG_FONEMA,
   7  BOP_RG
   8WHERE BOP_RG_FONEMA.FONEMA LIKE '%'||:b2 ||'%'
   9   AND BOP_RG.ID_RG = BOP_RG_FONEMA.ID_RG;
 
 577757 rows selected.
 
 Elapsed: 00:05:19.83
 
 Execution Plan
 --
0  SELECT STATEMENT Optimizer=CHOOSE (Cost=12848 Card=112467 By
   tes=22718334)
 
10   HASH JOIN (Cost=12848 Card=112467 Bytes=22718334)
21 INDEX (RANGE SCAN) OF 'IDX2_BOP_RG_FONEMA' (NON-UNIQUE)
   (Cost=88 Card=112467 Bytes=2024406)
 
31 INDEX (FAST FULL SCAN) OF 'IDX5_BOP_RG' (NON-UNIQUE) (Co
   st=6010 Card=2249333 Bytes=413877272)
 
 
 
 
 
 Statistics
 --
   0  recursive calls
   0  db block gets
   72271  consistent gets
   98716  physical reads
   0  redo size
   118090042  bytes sent via SQL*Net to client
  269853  bytes received via SQL*Net from client
   38519  SQL*Net roundtrips to/from client
   0  sorts (memory)
   0  sorts (disk)
  577757  rows processed
 
 
 Tenho os seguintes índices
 
 CREATE INDEX EBOP.IDX5_BOP_RG ON EBOP.BOP_RG
 (NM_NOME, ID_RG, NM_MAE, DT_NASCIMENTO)
 Distinct Keys:2249329
 
 CREATE INDEX EBOP.IDX2_BOP_RG_FONEMA ON EBOP.BOP_RG_FONEMA
 (FONEMA, ID_RG)
 Distinct Keys:2249330
 
 Tabela BOP_RG:
 2249333 Linhas
 
 Tabela BOP_RG_FONEMA:
 2249330 Linhas
 
 
 O tempo esta muito alto, alguma ídeia para melhorar essa query?
 
 Att,
 Jorge Donato
 
 
 
 
 
 
  
 
 
 [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] Re: Performance de Query

2006-08-24 Por tôpico Marcio Portes
Voce tentou as dicas que eu passei? Rodar a query com a subquery, a criacao
do indice e a coleta do histograma?

On 8/24/06, jorgedonato2001 [EMAIL PROTECTED] wrote:

 Valeu Chiappa, vou estudar e estar as suas sugestões.

 Obrigado,
 Jorge Donato

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

 
  pesquisa com %nnn% o melhor que vc pode obter normalmente é um range
  scan mesmo, não tem muito jeito , e o range vai ser BEM largo, vc TEM
  que procurar praticamente no índice todo , já que o % inicial
  significa qquer coisa antes do argumento... Será que REALMENTE não dá
  pra especificar sem o % inicial ?? Se realmente tiver que, pra um
  caso desses ou vc usa o CONTAINS num índice text, ou tem um índice de
  função que indexa só os caras que contém a chave de pesquisa, como
  mostrado em http://asktom.oracle.com/pls/ask/f?
  p=4950:8:F4950_P8_DISPLAYID:37336026927381 . Uma outra opção, se
  a pesquisa tiver que ser repetida várias vezes na mesma sessão, pode
  ser ao invés de se ter o sub-conjunto menor dos regs que atendem à
  chave de pesquisa indexados num índice de função, talvez possa ser te-
  los numa GTT populada pelo programa, se o custo pra resolver
  BOP_RG.ID_RG = BOP_RG_FONEMA.ID_RG não for tão alto...
 
  []s
 
   Chiappa
  --- Em oracle_br@yahoogrupos.com.br, jorgedonato2001 [EMAIL PROTECTED]
  escreveu
  
   Tenho a seguinte situacão:
  
   SQL VARIABLE b1 number;
   SQL VARIABLE b2 varchar2(85);
   SQL VARIABLE b3 number;
   SQL VARIABLE b4 number;
   SQL
   SQL EXECUTE :b1 := 9;
  
   PL/SQL procedure successfully completed.
  
   Elapsed: 00:00:00.01
   SQL EXECUTE :b2 := 'MR';
  
   PL/SQL procedure successfully completed.
  
   Elapsed: 00:00:00.00
   SQL EXECUTE :b3 := 999;
  
   PL/SQL procedure successfully completed.
  
   Elapsed: 00:00:00.00
   SQL EXECUTE :b4 := 1;
  
   PL/SQL procedure successfully completed.
  
   Elapsed: 00:00:00.01
   SQL
   SQL SELECT BOP_RG_FONEMA.ID_RG,
 2   BOP_RG_FONEMA.FONEMA,
 3   BOP_RG.NM_NOME,
 4   BOP_RG.NM_MAE,
 5   BOP_RG.DT_NASCIMENTO
 6  FROM BOP_RG_FONEMA,
 7  BOP_RG
 8WHERE BOP_RG_FONEMA.FONEMA LIKE '%'||:b2 ||'%'
 9   AND BOP_RG.ID_RG = BOP_RG_FONEMA.ID_RG;
  
   577757 rows selected.
  
   Elapsed: 00:05:19.83
  
   Execution Plan
   --
  0  SELECT STATEMENT Optimizer=CHOOSE (Cost=12848 Card=112467
  By
 tes=22718334)
  
  10   HASH JOIN (Cost=12848 Card=112467 Bytes=22718334)
  21 INDEX (RANGE SCAN) OF 'IDX2_BOP_RG_FONEMA' (NON-
  UNIQUE)
 (Cost=88 Card=112467 Bytes=2024406)
  
  31 INDEX (FAST FULL SCAN) OF 'IDX5_BOP_RG' (NON-UNIQUE)
  (Co
 st=6010 Card=2249333 Bytes=413877272)
  
  
  
  
  
   Statistics
   --
 0  recursive calls
 0  db block gets
 72271  consistent gets
 98716  physical reads
 0  redo size
 118090042  bytes sent via SQL*Net to client
269853  bytes received via SQL*Net from client
 38519  SQL*Net roundtrips to/from client
 0  sorts (memory)
 0  sorts (disk)
577757  rows processed
  
  
   Tenho os seguintes índices
  
   CREATE INDEX EBOP.IDX5_BOP_RG ON EBOP.BOP_RG
   (NM_NOME, ID_RG, NM_MAE, DT_NASCIMENTO)
   Distinct Keys:2249329
  
   CREATE INDEX EBOP.IDX2_BOP_RG_FONEMA ON EBOP.BOP_RG_FONEMA
   (FONEMA, ID_RG)
   Distinct Keys:2249330
  
   Tabela BOP_RG:
   2249333 Linhas
  
   Tabela BOP_RG_FONEMA:
   2249330 Linhas
  
  
   O tempo esta muito alto, alguma ídeia para melhorar essa query?
  
   Att,
   Jorge Donato
  
 




 




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


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



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

[oracle_br] Re: Performance de Query

2006-08-23 Por tôpico jlchiappa
pesquisa com %nnn% o melhor que vc pode obter normalmente é um range 
scan mesmo, não tem muito jeito , e o range vai ser BEM largo, vc TEM 
que procurar praticamente no índice todo , já que o % inicial 
significa qquer coisa antes do argumento... Será que REALMENTE não dá 
pra especificar sem o % inicial ?? Se realmente tiver que, pra um 
caso desses ou vc usa o CONTAINS num índice text, ou tem um índice de 
função que indexa só os caras que contém a chave de pesquisa, como 
mostrado em http://asktom.oracle.com/pls/ask/f?
p=4950:8:F4950_P8_DISPLAYID:37336026927381 . Uma outra opção, se 
a pesquisa tiver que ser repetida várias vezes na mesma sessão, pode 
ser ao invés de se ter o sub-conjunto menor dos regs que atendem à 
chave de pesquisa indexados num índice de função, talvez possa ser te-
los numa GTT populada pelo programa, se o custo pra resolver 
BOP_RG.ID_RG = BOP_RG_FONEMA.ID_RG não for tão alto...

[]s

 Chiappa
--- Em oracle_br@yahoogrupos.com.br, jorgedonato2001 [EMAIL PROTECTED] 
escreveu

 Tenho a seguinte situacão:
 
 SQL VARIABLE b1 number;
 SQL VARIABLE b2 varchar2(85);
 SQL VARIABLE b3 number;
 SQL VARIABLE b4 number;
 SQL 
 SQL EXECUTE :b1 := 9;
 
 PL/SQL procedure successfully completed.
 
 Elapsed: 00:00:00.01
 SQL EXECUTE :b2 := 'MR';
 
 PL/SQL procedure successfully completed.
 
 Elapsed: 00:00:00.00
 SQL EXECUTE :b3 := 999;
 
 PL/SQL procedure successfully completed.
 
 Elapsed: 00:00:00.00
 SQL EXECUTE :b4 := 1;
 
 PL/SQL procedure successfully completed.
 
 Elapsed: 00:00:00.01
 SQL 
 SQL SELECT BOP_RG_FONEMA.ID_RG,
   2   BOP_RG_FONEMA.FONEMA,
   3   BOP_RG.NM_NOME,
   4   BOP_RG.NM_MAE,
   5   BOP_RG.DT_NASCIMENTO
   6  FROM BOP_RG_FONEMA,
   7  BOP_RG
   8WHERE BOP_RG_FONEMA.FONEMA LIKE '%'||:b2 ||'%'
   9   AND BOP_RG.ID_RG = BOP_RG_FONEMA.ID_RG;
 
 577757 rows selected.
 
 Elapsed: 00:05:19.83
 
 Execution Plan
 --
0  SELECT STATEMENT Optimizer=CHOOSE (Cost=12848 Card=112467 
By
   tes=22718334)
 
10   HASH JOIN (Cost=12848 Card=112467 Bytes=22718334)
21 INDEX (RANGE SCAN) OF 'IDX2_BOP_RG_FONEMA' (NON-
UNIQUE)
   (Cost=88 Card=112467 Bytes=2024406)
 
31 INDEX (FAST FULL SCAN) OF 'IDX5_BOP_RG' (NON-UNIQUE) 
(Co
   st=6010 Card=2249333 Bytes=413877272)
 
 
 
 
 
 Statistics
 --
   0  recursive calls
   0  db block gets
   72271  consistent gets
   98716  physical reads
   0  redo size
   118090042  bytes sent via SQL*Net to client
  269853  bytes received via SQL*Net from client
   38519  SQL*Net roundtrips to/from client
   0  sorts (memory)
   0  sorts (disk)
  577757  rows processed
 
 
 Tenho os seguintes índices
 
 CREATE INDEX EBOP.IDX5_BOP_RG ON EBOP.BOP_RG
 (NM_NOME, ID_RG, NM_MAE, DT_NASCIMENTO)
 Distinct Keys:2249329
 
 CREATE INDEX EBOP.IDX2_BOP_RG_FONEMA ON EBOP.BOP_RG_FONEMA
 (FONEMA, ID_RG)
 Distinct Keys:2249330
 
 Tabela BOP_RG:
 2249333 Linhas
 
 Tabela BOP_RG_FONEMA:
 2249330 Linhas
 
 
 O tempo esta muito alto, alguma ídeia para melhorar essa query?
 
 Att,
 Jorge Donato







--
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: Performance de máquina

2006-08-22 Por tôpico jlchiappa
Não dá pra adivinhar assim à distância, vc terá que monitorar pela 
v$sesstat e/ou pelas tools do SO (iirc top ou similar no aix), mas 
algumas possibilidades :

 9.2.0.1 

houve LOTES e LOTES de bugs no release inicial do 9i e do 10g, e essa 
versão 9.2.0.1 indica que vc NÂO aplicou nenhum patch, acione o 
Suporte, verifique a aplicabilidade  e providencie isso pra quanto 
antes. Essa é uma grande possibilidade.


 .. e 4Gb de memória. ... Estou com 3Gb de max SGA 


==. stop aí colega : via de regra sempre se sugere que a SGA seja no 
máximo coisa de uns 30% ou 40% (ou em casos raros 50%) da RAM total, 
JUSTAMENTE para que SOBRE bastante RAM a ser alocada no momento da 
conexão dedicada (que vc não diz, mas IMAGINO que deve ser o caso) : 
como vc sabe, nesse caso a RAM alocada em cada conexão NÂO vem da 
SGA, e sim da RAM viva do sistema. Em sendo assim, algo está 
QUESTIONÁVEL no mínimo, 3 Gb de um total de 4 Gb dão 75% ... Será que 
de repente esse banco não está bem mal configurado que até as tarefas 
rotineiras que o banco faz (como geração de undo/rollback, controle 
de transações, de storage, etc) estão se arrastando e consumindo 
muita CPU e talvez até I/O ??

[]s

 Chiappa
--- Em oracle_br@yahoogrupos.com.br, rocharolr [EMAIL PROTECTED] 
escreveu

 Srs,
 
 Estou com o banco 9.2.0.1 instalado numa máquina AIX4.3.3 com dois 
processadores de 450MHz e 4Gb de memória.
 
 Estou com 3Gb de max SGA e 17G de swap disponível.
 
 Para minha surpresa, estou com o consumo de CPU a 100% mesmo com 
poucos usuários conectados (150 inativos e 20 ativos).
 
 Alguém pode dar uma luz sobre o pq desse consumo de CPU?
 
 Grato.
 
 Rocha
 
 
 [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: performance pks com tamanhos diferentes

2006-04-24 Por tôpico jlchiappa



Se for *** MESMO *** , realmente, o mesmo datatype, só diferenciando 
em tamanho (por exemplo, um é varchar2(40) e outro é VARCHAR2(80), 
digamos), em princípio vc não deverá ter conversão implícita, que é o 
que pode dar alteração de performance, então afaik de performance 
propriamente dita vc não deverá ter probs.

[]s

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

 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] Re: Performance Horrivel

2006-04-11 Por tôpico Jemerson Dutra
 utilizando os parametros sga_max_size e 
  workarea_size_policy(nao tenho detalhes de como usar).
  
  # Sort_area_size 
  # session_cached_cursors
  # timed_statistics
  # log_checkpoint_interval
  ===
  Db_cache_size 
Aumentei o Db_cache_size de 17825792 para 5000
 DB_CACHE_SIZE = 5000 #17825792 06/04/2006
  ===
   session_cached_cursors
   aumentei o session_cached_cursors de 100 para 300
   
  
  # Sort_area_size 
  Aumentei o Sort_area_size de 262144 para 1048576
sort_area_size = 1048576 #262144 
sort_area_retained_size = 1048576 #262144 
  
  
  tenho um servidor IBM AIX 5.2L
  COM 2 CPUs 1.2GHZ 
  TOPAS 
  S.O 
KERNEL 10 
USER   13
WAIT   75
IDLE2
  
  Memory 
  real,Mb  4096
  % comp 71 
  % nocomp   29.9 
  
  paging space 
  Size,MB 4096
  % used53
  % free46
  
  
  --- Em oracle_br@yahoogrupos.com.br, jlchiappa [EMAIL PROTECTED] 
  escreveu
  
   Colega, SE isto ainda é importante pra vc, releia aí a minha 
msg 
   anterior e manda a info que é pedida nela (ie, valor dos 
params, 
   workarea_size_policy, sga_max_size), diga EXATAMENTE o que vc 
 mudou 
   que obteve aí esses tais 10% de melhoria, e como pedido manda a 
   config de rollback/undo e do seu , a distribuição de I/O de 
modo 
   geral, especs do hardware de I/O,  e ajunta com mais info de SO 
e 
   hardware (ie, RAM livre e usada , CPU usada, taxa de uso de 
 swap), 
   que a gente pode tentar te ajudar.
Também seria legal vc fazer e mandar pra lista um testes fora 
da 
   aplicação, tipo : cria uma tabela pequena, uma tabela média 
e 
  uma 
   tabela grande, faz alguns SQLs diretamente em cima delas, se 
 nem 
   isso ir bem a gente suspeita de configs de So e banco e de 
 hardware 
   sub-dimensionado...
   
   []s
   
 Chiappa
   
   --- Em oracle_br@yahoogrupos.com.br, Jemerson Dutra 
  [EMAIL PROTECTED] 
   escreveu
   
Meu banco de dados continua horrivel, melhorou cerca de uns 
 10%. 
porem acho que nao esta como eu gostaria.

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

 Srs Meu banco é 9i creio que o awrrpt.sql é somente do 10g 
ne?
 Chiappa, O pessoal do E.R.P tinha um init.ora basico e eu 
  acabei 
 fazendo algumas poucas alteracoes, porem minha experiencia 
7 
  anos 
é 
 toda no 8i. e lendo algumas coisas acabei alterando alguns 
 parametros, tenho autonomia para alterar o que quiser desde 
 que 
nao 
 altere as tabelas.
 Vou estar respondendo os senhores amanha da empresa com 
calma 
desde 
 ja agradeco a colaboração e espero poder contar com os 
  senhores. 
 Chiappa, Sergio e Raphael Abraços.
 
 --- Em oracle_br@yahoogrupos.com.br, Sergio Leandro 
Ghellere 
 [EMAIL PROTECTED] escreveu
 
  Ola Jemerson,
  
 é difícil achar encontrar um problema assim...
 só pra termos uma idéia, cola o resultado do AWR...
 executa no sqlplus.
 @$ORACLE_HOME/rdbms/admin/awrrpt.sql
  
  pega aí um intervalo de algumas horas... normalmente o 
AWR 
   colhe 
 estatísticas a cada 
  60min..
  
 cola as primeiras 100 linhas só pra termos uma idéia.
  
  
  Grande abraço.
  
  
  Sergio Leandro Ghellere
  DBA Oracle
  +55 (41) 9906-4813
  
  On Thu Apr  6 15:19 , 'Phael' [EMAIL PROTECTED] sent:
  
  Ola Jemerson,
  
  Ja tive problemas com performance com AIX.
  No meu caso o problema era com um parametro do SO.
  Distrubuição da memória cache.
  
  executa esse arquivo ai:
  
  # /usjr/samples/kernel/vmtune
  
  colo o resultado ai.
  
  Raphael
  
  
  
  - Original Message - 
  From: Jemerson Dutra [EMAIL PROTECTED]
  To: oracle_br@yahoogrupos.com.br
  Sent: Thursday, April 06, 2006 2:35 PM
  Subject: [oracle_br] Re: Performance Horrivel
  
  
  Ae chiappa, da uma ajuda ai.
  Jemerson
  --- Em oracle_br@yahoogrupos.com.br, Jemerson Dutra 
  escreveu
  
   Senhores, estamos com um servidor em producao que foi 
  criado 
com
   alguns parametros default por causa de um ERP. Nos 
  deparamos 
 apos
  35
   dias, que o servidor esta com uma performance 
horrivel. 
 Gostaria da
   ajuda dos senhores, comentando/incluindo e ou 
alterando 
 meu
  init.ora.
   Servidor IBM AIX 5.2
   4GB RAM
   4GB SWAP
   2 CPUS DE 1.2GHZ
   ORACLE 10GB DE BANCO
   CRIADO BLOCK_SIZE 4096KB
   # initMFGPRO.ora - oracle instance parameter file
   # include database configuration parameters
   ifile = /Hdados2/admin/MFGPRO/config.MFGPRO
   open_cursors = 512
   # NLS Parameters
 NLS_LANGUAGE = AMERICAN
 NLS_TERRITORY = AMERICA
 NLS_NUMERIC_CHARACTERS = .,
   # tuning parameters
 db_files

Re: [oracle_br] Re: Performance Horrivel

2006-04-11 Por tôpico Porteno, André
 junto com o Software Oracle. 
  - Algumas tablespaces de dados coloquei no Disco 3 juntamente com 
o 
  ERP.
  - o Disco 5 continua o mais pesado.
  Atualmente tenho 5 discos.
  Segue a distribuição. 
  1) S.O 
  2) Software Oracle + RBS
  3) ERP  + Dados1
  4) Indices + dic + Dados 2
  5) Dados 3 (esse é o disco mais pesado) 
  rollback segments:
  tenho 5 rollback segs de 
  
  A aplicação roda no proprio servidor e os usuarios(cerca de 130 
  usuarios) acessam via telnet, consumindo cerca de 20mb cada.
  Coloquei cerca de 10 usuarios em MTS
  
  Segue os parametros alterados.
  obs: Ainda não estou utilizando os parametros sga_max_size e 
  workarea_size_policy(nao tenho detalhes de como usar).
  
  # Sort_area_size 
  # session_cached_cursors
  # timed_statistics
  # log_checkpoint_interval
  ===
  Db_cache_size 
Aumentei o Db_cache_size de 17825792 para 5000
 DB_CACHE_SIZE = 5000 #17825792 06/04/2006
  ===
   session_cached_cursors
   aumentei o session_cached_cursors de 100 para 300
   
  
  # Sort_area_size 
  Aumentei o Sort_area_size de 262144 para 1048576
sort_area_size = 1048576 #262144 
sort_area_retained_size = 1048576 #262144 
  
  
  tenho um servidor IBM AIX 5.2L
  COM 2 CPUs 1.2GHZ 
  TOPAS 
  S.O 
KERNEL 10 
USER   13
WAIT   75
IDLE2
  
  Memory 
  real,Mb  4096
  % comp 71 
  % nocomp   29.9 
  
  paging space 
  Size,MB 4096
  % used53
  % free46
  
  
  --- Em oracle_br@yahoogrupos.com.br, jlchiappa [EMAIL PROTECTED] 
  escreveu
  
   Colega, SE isto ainda é importante pra vc, releia aí a minha 
msg 
   anterior e manda a info que é pedida nela (ie, valor dos 
params, 
   workarea_size_policy, sga_max_size), diga EXATAMENTE o que vc 
 mudou 
   que obteve aí esses tais 10% de melhoria, e como pedido manda a 
   config de rollback/undo e do seu , a distribuição de I/O de 
modo 
   geral, especs do hardware de I/O,  e ajunta com mais info de SO 
e 
   hardware (ie, RAM livre e usada , CPU usada, taxa de uso de 
 swap), 
   que a gente pode tentar te ajudar.
Também seria legal vc fazer e mandar pra lista um testes fora 
da 
   aplicação, tipo : cria uma tabela pequena, uma tabela média 
e 
  uma 
   tabela grande, faz alguns SQLs diretamente em cima delas, se 
 nem 
   isso ir bem a gente suspeita de configs de So e banco e de 
 hardware 
   sub-dimensionado...
   
   []s
   
 Chiappa
   
   --- Em oracle_br@yahoogrupos.com.br, Jemerson Dutra 
  [EMAIL PROTECTED] 
   escreveu
   
Meu banco de dados continua horrivel, melhorou cerca de uns 
 10%. 
porem acho que nao esta como eu gostaria.

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

 Srs Meu banco é 9i creio que o awrrpt.sql é somente do 10g 
ne?
 Chiappa, O pessoal do E.R.P tinha um init.ora basico e eu 
  acabei 
 fazendo algumas poucas alteracoes, porem minha experiencia 
7 
  anos 
é 
 toda no 8i. e lendo algumas coisas acabei alterando alguns 
 parametros, tenho autonomia para alterar o que quiser desde 
 que 
nao 
 altere as tabelas.
 Vou estar respondendo os senhores amanha da empresa com 
calma 
desde 
 ja agradeco a colaboração e espero poder contar com os 
  senhores. 
 Chiappa, Sergio e Raphael Abraços.
 
 --- Em oracle_br@yahoogrupos.com.br, Sergio Leandro 
Ghellere 
 [EMAIL PROTECTED] escreveu
 
  Ola Jemerson,
  
 é difícil achar encontrar um problema assim...
 só pra termos uma idéia, cola o resultado do AWR...
 executa no sqlplus.
 @$ORACLE_HOME/rdbms/admin/awrrpt.sql
  
  pega aí um intervalo de algumas horas... normalmente o 
AWR 
   colhe 
 estatísticas a cada 
  60min..
  
 cola as primeiras 100 linhas só pra termos uma idéia.
  
  
  Grande abraço.
  
  
  Sergio Leandro Ghellere
  DBA Oracle
  +55 (41) 9906-4813
  
  On Thu Apr  6 15:19 , 'Phael' [EMAIL PROTECTED] sent:
  
  Ola Jemerson,
  
  Ja tive problemas com performance com AIX.
  No meu caso o problema era com um parametro do SO.
  Distrubuição da memória cache.
  
  executa esse arquivo ai:
  
  # /usjr/samples/kernel/vmtune
  
  colo o resultado ai.
  
  Raphael
  
  
  
  - Original Message - 
  From: Jemerson Dutra [EMAIL PROTECTED]
  To: oracle_br@yahoogrupos.com.br
  Sent: Thursday, April 06, 2006 2:35 PM
  Subject: [oracle_br] Re: Performance Horrivel
  
  
  Ae chiappa, da uma ajuda ai.
  Jemerson
  --- Em oracle_br@yahoogrupos.com.br, Jemerson Dutra 
  escreveu
  
   Senhores, estamos com um servidor em producao que foi 
  criado 
com
   alguns parametros default por causa de um ERP. Nos 
  deparamos 
 apos
  35
   dias, que o servidor esta com uma performance 
horrivel

[oracle_br] Re: Performance Horrivel

2006-04-11 Por tôpico Jemerson Dutra
 should be in use.  
Add the 
 values for in use / pers and in use / clnt.  Now divide the sum 
by the 
 value for memory / size.  For best database performance, this 
value should 
 generally not be higher than 30% (0.30).
 
 Here is an example of the svmon output:
 
 # svmon -G
 
  size   inuse freepin 
virtual
 memory  131072   129432   1640   11704   50091
 pg space 262144   100913
 
 work   pers  clnt  lpage
 pin  11704   0 0 0
 in use  47062   76126   6244 0
 
 In this example, (in use / pers) 76126 plus (in use / clnt) 6244 
equals 
 82370.  82370 divided by (memory / size) 131072 equals 0.628 or 
 approximately 63% of physical memory being used by AIX to buffer 
file I/O. 
 This indicates the AIX VMM needs to be tuned to allow more physical 
memory 
 to be used by Oracle and other processes, and less physical memory 
to be 
 used to buffer file I/O.
 
 Remember that although AIX associates this memory with the Oracle 
processes 
 (because Oracle requested the file I/O), all of the memory used to 
buffer 
 file I/O is completely allocated and controlled by AIX, not 
Oracle.  If you 
 need help checking, setting, or tuning the AIX VMM, contact your 
AIX systems 
 administrator and/or IBM Support.  You may also want to review the 
AIX 
 Performance Management Guide by IBM linked in the References 
section 
 below.
 
 UPDATE: After this article was originally written, IBM has 
introduced a new 
 VMM parameter which is also very helpful with this issue. The 
parameter 
 is...
 
 
 lru_file_repage
 The default value is 1, but it is recommended to set this to 0. 
This 
 setting hints to the VMM to only steal file pages (from the AIX 
file buffer 
 cache) and leave the computational pages (from the SGA) alone.
 
 This new lru_file_repage parameter is only available on AIX 5.2 
ML04+ and 
 AIX 5.3 ML01+
 
 
 
 
 []´s
 
 Sharif
 
 - Original Message - 
 From: Phael [EMAIL PROTECTED]
 To: oracle_br@yahoogrupos.com.br
 Sent: Monday, April 10, 2006 11:10 AM
 Subject: Re: [oracle_br] Re: Performance Horrivel
 
 
  Jemerson,
 
  Também não sou nenhum especialista em AIX.
  Na verdade quando tive problemas de performance no AIX
  fiz varios tunings na base e se esgotaram as
  tentativas de melhoras, tendo pouco sucesso. Chamei um
  tecnico para otimizar o AIX e ele me disse que esse parametro
  controla a distribuição da memória Cache da máquina sendo que
  por default ele libera 80% do recurso para o SO e 20% para
  demais softwares... vai entende isso???...se estiver falando 
besteira
  alguem me corrija por facor.enfim  mudei esse parametro!!!
  Como estavam tendo bastante paginação e swap a mudança
  dessa configuração pra 10% e 5% foi otima acabando com
  os problemas de paginações e swap.
  Esse procedimento foi feito em um AIX 4.3.3 mas acho que
  serve para o AIX 5.2.
  Não custa tentar, caso não der certo é só remover a linha e
  entrar em contato com algum especialista em AIX para
  entender melhor esses reajuste.
 
  atc
 
  Raphael
 
 
  - Original Message - 
  From: Jemerson Dutra [EMAIL PROTECTED]
  To: oracle_br@yahoogrupos.com.br
  Sent: Monday, April 10, 2006 10:45 AM
  Subject: [oracle_br] Re: Performance Horrivel
 
 
  Raphael, desculpe minha ignorancia mas o que esses parametros
  controlam? e o que eles farao??
  Jemerson
 
  --- Em oracle_br@yahoogrupos.com.br, Phael [EMAIL PROTECTED] 
escreveu
 
  aff...
  errei o caminho.
  /usj troque para  /usr...
 
  vmtune:2:once:/usr/samples/kernel/vmtune -p5 -P10 -r8 -R16 -
f128 -
  F144
 
  Raphael
 
  - Original Message - 
  From: Phael [EMAIL PROTECTED]
  To: oracle_br@yahoogrupos.com.br
  Sent: Monday, April 10, 2006 8:48 AM
  Subject: Re: [oracle_br] Re: Performance Horrivel
 
 
   Jemerson,
  
   Adicione esssa linha no seu arquivo /etc/inittab
  
   vmtune:2:once:/usj/samples/kernel/vmtune -p5 -P10 -r8 -R16 -
f128 -
  F144
  
   reinicie a maquina!
  
   E rode de novo o vmtune para ver se as alterações foram feitas:
   esses parametros deverão ser reajustados...
   minperm% = 20   para 5
   maxperm% = 80  para 10
  
   Atc
  
   Raphael
  
  
   - Original Message - 
   From: Jemerson Dutra [EMAIL PROTECTED]
   To: oracle_br@yahoogrupos.com.br
   Sent: Friday, April 07, 2006 7:57 AM
   Subject: [oracle_br] Re: Performance Horrivel
  
  
   Raphael, segue o resultado do vmtune
  
   memory_frames = 1048576
   pinnable_frames = 940632
   maxfree = 128
   minfree = 120
   minperm% = 20
   minperm = 19
   maxperm% = 80
   maxperm = 773332
   strict_maxperm = 0
   maxpin% = 80
   maxpin = 838861
   maxclient% = 80
   lrubucket = 131072
   defps = 1
   nokilluid = 0
   numpsblks = 1081344
   npskill = 8448
   npswarn = 33792
   v_pinshm = 0
   pta_balance_threshold = 0
   pagecoloring = 0
   framesets = 2
   mempools = 1
   lgpg_size = 0
   lgpg_regions = 0
   num_spec_dataseg = 0
   spec_dataseg_int = 512

[oracle_br] Re: Performance Horrivel

2006-04-11 Por tôpico Jemerson Dutra
 Jemerson,
   
   Ja tive problemas com performance com AIX.
   No meu caso o problema era com um parametro do SO.
   Distrubuição da memória cache.
   
   executa esse arquivo ai:
   
   # /usjr/samples/kernel/vmtune
   
   colo o resultado ai.
   
   Raphael
   
   
   
   - Original Message - 
   From: Jemerson Dutra [EMAIL PROTECTED]
   To: oracle_br@yahoogrupos.com.br
   Sent: Thursday, April 06, 2006 2:35 PM
   Subject: [oracle_br] Re: Performance Horrivel
   
   
   Ae chiappa, da uma ajuda ai.
   Jemerson
   --- Em oracle_br@yahoogrupos.com.br, Jemerson Dutra 
   escreveu
   
Senhores, estamos com um servidor em producao que 
foi 
   criado 
 com
alguns parametros default por causa de um ERP. Nos 
   deparamos 
  apos
   35
dias, que o servidor esta com uma performance 
 horrivel. 
  Gostaria da
ajuda dos senhores, comentando/incluindo e ou 
 alterando 
  meu
   init.ora.
Servidor IBM AIX 5.2
4GB RAM
4GB SWAP
2 CPUS DE 1.2GHZ
ORACLE 10GB DE BANCO
CRIADO BLOCK_SIZE 4096KB
# initMFGPRO.ora - oracle instance parameter file
# include database configuration parameters
ifile = /Hdados2/admin/MFGPRO/config.MFGPRO
open_cursors = 512
# NLS Parameters
  NLS_LANGUAGE = AMERICAN
  NLS_TERRITORY = AMERICA
  NLS_NUMERIC_CHARACTERS = .,
# tuning parameters
  db_files = 200
  db_file_multiblock_read_count = 32   # 
  LARGE
# --- Autor : Jemerson - Data: 20/02/2006
# 
  shared_pool_size = 3  ## 4
# 
sort_area_size = 262144 ## 
   1048576  
# 
  LARGE
sort_area_retained_size = 262144 ##
   1048576
# LARGE
large_pool_size = 15500 #25000 #15500 ## 
 1  
  #
80MIL   large_pool_size = 614400
java_pool_size  = 20971520 ##1
# 
  log_checkpoint_interval = 1
  processes = 450 #500 # 
600  
 #
   LARGE
  log_buffer = 2048000 # 
   1048576 
 # 
  LARGE
  max_dump_file_size = 10240 # limit trace file size 
 to 
  5M 
   ea
  compatible=9.2.0
  UTL_FILE_DIR=*   # if you want to use 
 SQL 
Loader
optimizer_mode = CHOOSE
# 
# liberado em 19/09/2005
CURSOR_SHARING = FORCE ##EXACT ##FORCE
# 
dispatchers=(PROTOCOL=TCP) (dispatchers=20)
service_names= MFGPRO
instance_name= MFGPRO
# 
# melhoria no servicos MTS 10/10/2005
# Autor: Jemerson Dutra
mts_max_servers=100
mts_servers=40
mts_max_dispatchers=40
O7_DICTIONARY_ACCESSIBILITY=TRUE
GLOBAL_NAMES = TRUE
dml_locks = 3408# LARGE
open_links = 4
sort_multiblock_read_count = 4
dbwr_io_slaves = 2
DB_WRITER_PROCESSES = 2
DB_CACHE_SIZE = 17825792
session_cached_cursors=100
timed_statistics = false;
   
   
   
   
   
   
   
   ---
--
 --
  --
   --
-
 --
  
   
   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

Re: [oracle_br] Re: Performance Horrivel

2006-04-11 Por tôpico Phael
Jemerson,
Voce colocou no /etc/inittab

vmtune:2:once:/usr/samples/kernel/vmtune -p5 -P10 -r8 -R16 -f128 -F144

essa linha... note q a primeira vez q passei o caminho estava errado.

... estranho era para dar certo!


tente mudar ele dinamicamente.

# cd /usr/samples/kernel
# vmtune -p5 -P10

atc.

Raphael


- Original Message - 
From: Jemerson Dutra [EMAIL PROTECTED]
To: oracle_br@yahoogrupos.com.br
Sent: Tuesday, April 11, 2006 1:51 PM
Subject: [oracle_br] Re: Performance Horrivel


Phael, fiz as alterações que vc disse mas segundo os exemplos do
SHARIF o AIX nao pegou a configuracao, ele continua com os parametros
defaults.

# vmo -a
memory_frames = 1572864
  pinnable_frames = 1432380
  maxfree = 144
  minfree = 128
 minperm% = 20 ---
  minperm = 290532
 maxperm% = 80 ---
  maxperm = 1162131
   strict_maxperm = 0
  maxpin% = 80
   maxpin = 1258292
   maxclient% = 80 ---
lrubucket = 131072


--- Em oracle_br@yahoogrupos.com.br, Sharif G Raduan
[EMAIL PROTECTED] escreveu

 no metalink vc pode encontrar notas de tunning no AIX, mas o
minperm /
 maxparm é a quantidade de memória para cache de file systens,
quando vc está
 utilizando oracle não precisa dessas quantidades grandes que são
default.

   Subject:  AIX: Database performance gets slower the longer
the
 database is running
 Doc ID:  Note:316533.1 Type:  PROBLEM
 Last Revision Date:  24-MAR-2006 Status:  PUBLISHED

 In this Document
   Symptoms
   Cause
   Solution
   References



 




 Applies to:
 Oracle Server - Enterprise Edition - Version:
 AIX5L Based Systems (64-bit)
 AIX Based Systems (32-bit)
 Bull Escala RL AIX (64-bit)
 AIX 4.3 Based Systems (64-bit)
 Oracle databases running on AIX based systems.
 Symptoms
 Database performance continues to get slower and slower the longer
the
 database is left running.  You may also notice a continuing
increase in the
 amount of paging space usage the longer the database is left
running.
 However, database performance returns to normal after rebooting the
system,
 or shutting down and restarting the database.
 Cause
 It is likely that you have not tuned the AIX Virtual Memory Manager
(VMM).
 The default values for the AIX VMM are generally not appropriate
for use
 with relational databases.  The default values for the AIX VMM will
 gradually allow up to 80% of physical memory to be used to buffer
file I/O.
 Since Oracle is already buffering file I/O in the SGA, the same
data is
 unnecessarily being buffered twice, and leaves only 20% of physical
memory
 to run the Oracle database(s) and all other programs.  This causes
the
 majority of the Oracle database to be pushed out of physical memory
to
 paging space, thus greatly impacting database performance.

 The information in this article does not apply, or the impact will
be much
 less, if you are using one or more of the following storage types
for the
 database datafiles, because AIX does not buffer file I/O for these
types:

 Raw logical volumes, filesystems using the Concurrent I/O (CIO)
option,
 filesystems using the Direct I/O (DIO) option

 Note that there is no built-in support for CIO or DIO in Oracle
Database
 9iR2 (9.2.0) or lower, though you can force the use of CIO (JFS2)
or DIO
 (JFS) with filesystem mount options.

 Also note that tuning the AIX VMM is outside the scope of Oracle
Support.
 If you need help with checking, setting, or tuning the AIX VMM
beyond what
 is covered in this article, you must contact your AIX systems
administrator
 and/or IBM Support for further assistance.

 Solution
 To check whether your system is using the untuned default values
for the AIX
 VMM, run the command:

 /usr/sbin/vmo -a

 If you do not have the /usr/sbin/vmo file you will need to have
your AIX
 systems administrator load the AIX fileset bos.perf.tune.  The
vmo command
 will list out all of the VMM parameters and their current values.
The
 parameters you want to examine are:

 MINPERM%, MAXPERM%, and MAXCLIENT%

 Here is an example of the vmo report:

 # vmo -a
 memory_frames = 1572864
 pinnable_frames = 1431781
 maxfree = 1088
 minfree = 960
 minperm% = 20
 minperm = 294356
 maxperm% = 80
 maxperm = 1177427
 strict_maxperm = 0
 maxpin% = 80
 maxpin = 1258292
 maxclient% = 80
 lrubucket = 131072
 .
 The untuned default settings are MINPERM%=20%, MAXPERM%=80%, and
 MAXCLIENT%=80%.  There is no correct value for these parameters
and only
 extensive testing will reveal the optimal values.  The optimal
value may be
 different for different databases on the same system, so keep this
in mind
 when tuning the VMM and choose values which work best for all of
the
 databases you will be running on the system.  Use the following
values as a
 starting point:

 MINPERM% = 10-15%, MAXPERM

Re: [oracle_br] Re: Performance Horrivel

2006-04-11 Por tôpico Sharif G Raduan
Nesse artigo vc tem exemplos de como mudar os valores

http://www.dbis.informatik.uni-goettingen.de/Teaching/oracle-doc/admin-guide/appa_aix.htm

[]´s

Sharif

- Original Message - 
From: Jemerson Dutra [EMAIL PROTECTED]
To: oracle_br@yahoogrupos.com.br
Sent: Tuesday, April 11, 2006 1:51 PM
Subject: [oracle_br] Re: Performance Horrivel


Phael, fiz as alterações que vc disse mas segundo os exemplos do
SHARIF o AIX nao pegou a configuracao, ele continua com os parametros
defaults.

# vmo -a
memory_frames = 1572864
  pinnable_frames = 1432380
  maxfree = 144
  minfree = 128
 minperm% = 20 ---
  minperm = 290532
 maxperm% = 80 ---
  maxperm = 1162131
   strict_maxperm = 0
  maxpin% = 80
   maxpin = 1258292
   maxclient% = 80 ---
lrubucket = 131072


--- Em oracle_br@yahoogrupos.com.br, Sharif G Raduan
[EMAIL PROTECTED] escreveu

 no metalink vc pode encontrar notas de tunning no AIX, mas o
minperm /
 maxparm é a quantidade de memória para cache de file systens,
quando vc está
 utilizando oracle não precisa dessas quantidades grandes que são
default.

   Subject:  AIX: Database performance gets slower the longer
the
 database is running
 Doc ID:  Note:316533.1 Type:  PROBLEM
 Last Revision Date:  24-MAR-2006 Status:  PUBLISHED

 In this Document
   Symptoms
   Cause
   Solution
   References



 




 Applies to:
 Oracle Server - Enterprise Edition - Version:
 AIX5L Based Systems (64-bit)
 AIX Based Systems (32-bit)
 Bull Escala RL AIX (64-bit)
 AIX 4.3 Based Systems (64-bit)
 Oracle databases running on AIX based systems.
 Symptoms
 Database performance continues to get slower and slower the longer
the
 database is left running.  You may also notice a continuing
increase in the
 amount of paging space usage the longer the database is left
running.
 However, database performance returns to normal after rebooting the
system,
 or shutting down and restarting the database.
 Cause
 It is likely that you have not tuned the AIX Virtual Memory Manager
(VMM).
 The default values for the AIX VMM are generally not appropriate
for use
 with relational databases.  The default values for the AIX VMM will
 gradually allow up to 80% of physical memory to be used to buffer
file I/O.
 Since Oracle is already buffering file I/O in the SGA, the same
data is
 unnecessarily being buffered twice, and leaves only 20% of physical
memory
 to run the Oracle database(s) and all other programs.  This causes
the
 majority of the Oracle database to be pushed out of physical memory
to
 paging space, thus greatly impacting database performance.

 The information in this article does not apply, or the impact will
be much
 less, if you are using one or more of the following storage types
for the
 database datafiles, because AIX does not buffer file I/O for these
types:

 Raw logical volumes, filesystems using the Concurrent I/O (CIO)
option,
 filesystems using the Direct I/O (DIO) option

 Note that there is no built-in support for CIO or DIO in Oracle
Database
 9iR2 (9.2.0) or lower, though you can force the use of CIO (JFS2)
or DIO
 (JFS) with filesystem mount options.

 Also note that tuning the AIX VMM is outside the scope of Oracle
Support.
 If you need help with checking, setting, or tuning the AIX VMM
beyond what
 is covered in this article, you must contact your AIX systems
administrator
 and/or IBM Support for further assistance.

 Solution
 To check whether your system is using the untuned default values
for the AIX
 VMM, run the command:

 /usr/sbin/vmo -a

 If you do not have the /usr/sbin/vmo file you will need to have
your AIX
 systems administrator load the AIX fileset bos.perf.tune.  The
vmo command
 will list out all of the VMM parameters and their current values.
The
 parameters you want to examine are:

 MINPERM%, MAXPERM%, and MAXCLIENT%

 Here is an example of the vmo report:

 # vmo -a
 memory_frames = 1572864
 pinnable_frames = 1431781
 maxfree = 1088
 minfree = 960
 minperm% = 20
 minperm = 294356
 maxperm% = 80
 maxperm = 1177427
 strict_maxperm = 0
 maxpin% = 80
 maxpin = 1258292
 maxclient% = 80
 lrubucket = 131072
 .
 The untuned default settings are MINPERM%=20%, MAXPERM%=80%, and
 MAXCLIENT%=80%.  There is no correct value for these parameters
and only
 extensive testing will reveal the optimal values.  The optimal
value may be
 different for different databases on the same system, so keep this
in mind
 when tuning the VMM and choose values which work best for all of
the
 databases you will be running on the system.  Use the following
values as a
 starting point:

 MINPERM% = 10-15%, MAXPERM% = 20-30%, MAXCLIENT% = MAXPERM%

 To get a snapshot of how much physical memory is being used by AIX
to buffer
 file I/O, run the command:

 /usr

[oracle_br] Re: Performance Horrivel

2006-04-11 Por tôpico Jemerson Dutra
Phael e Sharif, tentei o comando abaixo e so funcionou quando 
coloquei o parametro de maxclients. 
Segue o comando abaixo
- vmtune -p15 -P30 -t30

Minha maquina melhorou bastante a performance. 
Ja nao esta mais tento pontos de travamento. 
Estarei fazendo as alterações que o Chiappa me comentou para que eu 
consiga o maximo de performance.
Obrigado

como parametro tinha um processo que rodava em 4 horas estou rodando 
em 50minutos sem que outros usuarios sintam o processamento.

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

 Jemerson,
 Voce colocou no /etc/inittab
 
 vmtune:2:once:/usr/samples/kernel/vmtune -p5 -P10 -r8 -R16 -f128 -
F144
 
 essa linha... note q a primeira vez q passei o caminho estava 
errado.
 
 ... estranho era para dar certo!
 
 
 tente mudar ele dinamicamente.
 
 # cd /usr/samples/kernel
 # vmtune -p5 -P10
 
 atc.
 
 Raphael
 
 
 - Original Message - 
 From: Jemerson Dutra [EMAIL PROTECTED]
 To: oracle_br@yahoogrupos.com.br
 Sent: Tuesday, April 11, 2006 1:51 PM
 Subject: [oracle_br] Re: Performance Horrivel
 
 
 Phael, fiz as alterações que vc disse mas segundo os exemplos do
 SHARIF o AIX nao pegou a configuracao, ele continua com os 
parametros
 defaults.
 
 # vmo -a
 memory_frames = 1572864
   pinnable_frames = 1432380
   maxfree = 144
   minfree = 128
  minperm% = 20 ---
   minperm = 290532
  maxperm% = 80 ---
   maxperm = 1162131
strict_maxperm = 0
   maxpin% = 80
maxpin = 1258292
maxclient% = 80 ---
 lrubucket = 131072
 
 
 --- Em oracle_br@yahoogrupos.com.br, Sharif G Raduan
 [EMAIL PROTECTED] escreveu
 
  no metalink vc pode encontrar notas de tunning no AIX, mas o
 minperm /
  maxparm é a quantidade de memória para cache de file systens,
 quando vc está
  utilizando oracle não precisa dessas quantidades grandes que são
 default.
 
Subject:  AIX: Database performance gets slower the longer
 the
  database is running
  Doc ID:  Note:316533.1 Type:  PROBLEM
  Last Revision Date:  24-MAR-2006 Status:  PUBLISHED
 
  In this Document
Symptoms
Cause
Solution
References
 
 
 
  --
--
 
 
 
 
  Applies to:
  Oracle Server - Enterprise Edition - Version:
  AIX5L Based Systems (64-bit)
  AIX Based Systems (32-bit)
  Bull Escala RL AIX (64-bit)
  AIX 4.3 Based Systems (64-bit)
  Oracle databases running on AIX based systems.
  Symptoms
  Database performance continues to get slower and slower the longer
 the
  database is left running.  You may also notice a continuing
 increase in the
  amount of paging space usage the longer the database is left
 running.
  However, database performance returns to normal after rebooting 
the
 system,
  or shutting down and restarting the database.
  Cause
  It is likely that you have not tuned the AIX Virtual Memory 
Manager
 (VMM).
  The default values for the AIX VMM are generally not appropriate
 for use
  with relational databases.  The default values for the AIX VMM 
will
  gradually allow up to 80% of physical memory to be used to buffer
 file I/O.
  Since Oracle is already buffering file I/O in the SGA, the same
 data is
  unnecessarily being buffered twice, and leaves only 20% of 
physical
 memory
  to run the Oracle database(s) and all other programs.  This causes
 the
  majority of the Oracle database to be pushed out of physical 
memory
 to
  paging space, thus greatly impacting database performance.
 
  The information in this article does not apply, or the impact will
 be much
  less, if you are using one or more of the following storage types
 for the
  database datafiles, because AIX does not buffer file I/O for these
 types:
 
  Raw logical volumes, filesystems using the Concurrent I/O (CIO)
 option,
  filesystems using the Direct I/O (DIO) option
 
  Note that there is no built-in support for CIO or DIO in Oracle
 Database
  9iR2 (9.2.0) or lower, though you can force the use of CIO (JFS2)
 or DIO
  (JFS) with filesystem mount options.
 
  Also note that tuning the AIX VMM is outside the scope of Oracle
 Support.
  If you need help with checking, setting, or tuning the AIX VMM
 beyond what
  is covered in this article, you must contact your AIX systems
 administrator
  and/or IBM Support for further assistance.
 
  Solution
  To check whether your system is using the untuned default values
 for the AIX
  VMM, run the command:
 
  /usr/sbin/vmo -a
 
  If you do not have the /usr/sbin/vmo file you will need to have
 your AIX
  systems administrator load the AIX fileset bos.perf.tune.  The
 vmo command
  will list out all of the VMM parameters and their current values.
 The
  parameters you want to examine are:
 
  MINPERM%, MAXPERM%, and MAXCLIENT%
 
  Here is an example of the vmo report:
 
  # vmo

[oracle_br] Re: Performance Horrivel

2006-04-10 Por tôpico jlchiappa
Colega, SE isto ainda é importante pra vc, releia aí a minha msg 
anterior e manda a info que é pedida nela (ie, valor dos params, 
workarea_size_policy, sga_max_size), diga EXATAMENTE o que vc mudou 
que obteve aí esses tais 10% de melhoria, e como pedido manda a 
config de rollback/undo e do seu , a distribuição de I/O de modo 
geral, especs do hardware de I/O,  e ajunta com mais info de SO e 
hardware (ie, RAM livre e usada , CPU usada, taxa de uso de swap), 
que a gente pode tentar te ajudar.
 Também seria legal vc fazer e mandar pra lista um testes fora da 
aplicação, tipo : cria uma tabela pequena, uma tabela média e uma 
tabela grande, faz alguns SQLs diretamente em cima delas, se nem 
isso ir bem a gente suspeita de configs de So e banco e de hardware 
sub-dimensionado...

[]s

  Chiappa

--- Em oracle_br@yahoogrupos.com.br, Jemerson Dutra [EMAIL PROTECTED] 
escreveu

 Meu banco de dados continua horrivel, melhorou cerca de uns 10%. 
 porem acho que nao esta como eu gostaria.
 
 --- Em oracle_br@yahoogrupos.com.br, jkdutra [EMAIL PROTECTED] 
 escreveu
 
  Srs Meu banco é 9i creio que o awrrpt.sql é somente do 10g ne?
  Chiappa, O pessoal do E.R.P tinha um init.ora basico e eu acabei 
  fazendo algumas poucas alteracoes, porem minha experiencia 7 anos 
 é 
  toda no 8i. e lendo algumas coisas acabei alterando alguns 
  parametros, tenho autonomia para alterar o que quiser desde que 
 nao 
  altere as tabelas.
  Vou estar respondendo os senhores amanha da empresa com calma 
 desde 
  ja agradeco a colaboração e espero poder contar com os senhores. 
  Chiappa, Sergio e Raphael Abraços.
  
  --- Em oracle_br@yahoogrupos.com.br, Sergio Leandro Ghellere 
  [EMAIL PROTECTED] escreveu
  
   Ola Jemerson,
   
  é difícil achar encontrar um problema assim...
  só pra termos uma idéia, cola o resultado do AWR...
  executa no sqlplus.
  @$ORACLE_HOME/rdbms/admin/awrrpt.sql
   
   pega aí um intervalo de algumas horas... normalmente o AWR 
colhe 
  estatísticas a cada 
   60min..
   
  cola as primeiras 100 linhas só pra termos uma idéia.
   
   
   Grande abraço.
   
   
   Sergio Leandro Ghellere
   DBA Oracle
   +55 (41) 9906-4813
   
   On Thu Apr  6 15:19 , 'Phael' [EMAIL PROTECTED] sent:
   
   Ola Jemerson,
   
   Ja tive problemas com performance com AIX.
   No meu caso o problema era com um parametro do SO.
   Distrubuição da memória cache.
   
   executa esse arquivo ai:
   
   # /usjr/samples/kernel/vmtune
   
   colo o resultado ai.
   
   Raphael
   
   
   
   - Original Message - 
   From: Jemerson Dutra [EMAIL PROTECTED]
   To: oracle_br@yahoogrupos.com.br
   Sent: Thursday, April 06, 2006 2:35 PM
   Subject: [oracle_br] Re: Performance Horrivel
   
   
   Ae chiappa, da uma ajuda ai.
   Jemerson
   --- Em oracle_br@yahoogrupos.com.br, Jemerson Dutra 
   escreveu
   
Senhores, estamos com um servidor em producao que foi criado 
 com
alguns parametros default por causa de um ERP. Nos deparamos 
  apos
   35
dias, que o servidor esta com uma performance horrivel. 
  Gostaria da
ajuda dos senhores, comentando/incluindo e ou alterando meu
   init.ora.
Servidor IBM AIX 5.2
4GB RAM
4GB SWAP
2 CPUS DE 1.2GHZ
ORACLE 10GB DE BANCO
CRIADO BLOCK_SIZE 4096KB
# initMFGPRO.ora - oracle instance parameter file
# include database configuration parameters
ifile = /Hdados2/admin/MFGPRO/config.MFGPRO
open_cursors = 512
# NLS Parameters
  NLS_LANGUAGE = AMERICAN
  NLS_TERRITORY = AMERICA
  NLS_NUMERIC_CHARACTERS = .,
# tuning parameters
  db_files = 200
  db_file_multiblock_read_count = 32   # LARGE
# --- Autor : Jemerson - Data: 20/02/2006
# 
  shared_pool_size = 3  ## 4
# 
sort_area_size = 262144 ## 1048576  
# 
  LARGE
sort_area_retained_size = 262144 ##
   1048576
# LARGE
large_pool_size = 15500 #25000 #15500 ## 
 1  
  #
80MIL   large_pool_size = 614400
java_pool_size  = 20971520 ##1
# 
  log_checkpoint_interval = 1
  processes = 450 #500 # 
600  
 #
   LARGE
  log_buffer = 2048000 # 1048576 
 # 
  LARGE
  max_dump_file_size = 10240 # limit trace file size to 5M ea
  compatible=9.2.0
  UTL_FILE_DIR=*   # if you want to use SQL 
Loader
optimizer_mode = CHOOSE
# 
# liberado em 19/09/2005
CURSOR_SHARING = FORCE ##EXACT ##FORCE
# 
dispatchers=(PROTOCOL=TCP) (dispatchers=20)
service_names= MFGPRO
instance_name= MFGPRO
# 
# melhoria no servicos MTS 10/10/2005
# Autor: Jemerson Dutra
mts_max_servers=100

Re: [oracle_br] Re: Performance Horrivel

2006-04-10 Por tôpico Phael
Jemerson,

Adicione esssa linha no seu arquivo /etc/inittab

vmtune:2:once:/usj/samples/kernel/vmtune -p5 -P10 -r8 -R16 -f128 -F144

reinicie a maquina!

E rode de novo o vmtune para ver se as alterações foram feitas:
esses parametros deverão ser reajustados...
minperm% = 20   para 5
maxperm% = 80  para 10

Atc

Raphael


- Original Message - 
From: Jemerson Dutra [EMAIL PROTECTED]
To: oracle_br@yahoogrupos.com.br
Sent: Friday, April 07, 2006 7:57 AM
Subject: [oracle_br] Re: Performance Horrivel


Raphael, segue o resultado do vmtune

memory_frames = 1048576
pinnable_frames = 940632
maxfree = 128
minfree = 120
minperm% = 20
minperm = 19
maxperm% = 80
maxperm = 773332
strict_maxperm = 0
maxpin% = 80
maxpin = 838861
maxclient% = 80
lrubucket = 131072
defps = 1
nokilluid = 0
numpsblks = 1081344
npskill = 8448
npswarn = 33792
v_pinshm = 0
pta_balance_threshold = 0
pagecoloring = 0
framesets = 2
mempools = 1
lgpg_size = 0
lgpg_regions = 0
num_spec_dataseg = 0
spec_dataseg_int = 512
memory_affinity = 1
htabscale = -1
force_relalias_lite = 0
relalias_percentage = 0
data_stagger_interval = 161
large_page_heap_size = 0
kernel_heap_psize = 4096
soft_min_lgpgs_vmpool = 0
vmm_fork_policy = 0
low_ps_handling = 1
mbuf_heap_psize = 4096
strict_maxclient = 1
cpu_scale_memp = 8
lru_poll_interval = 0
lru_file_repage = 1
memory_frames = 1048576
minpgahead = 2
memory_frames = 1048576
minpgahead = 2
maxpgahead = 8
pd_npages = 65536
maxrandwrt = 0
numclust = 1
numfsbufs = 196
sync_release_ilock = 0
lvm_bufcnt = 9
j2_minPageReadAhead = 2
j2_maxPageReadAhead = 128
j2_nBufferPerPagerDevice = 512
j2_nPagesPerWriteBehindCluster = 32
j2_maxRandomWrite = 0
j2_nRandomCluster = 0
j2_non_fatal_crashes_system = 0
j2_syncModifiedMapped = 1
jfs_clread_enabled = 0
jfs_use_read_lock = 1
hd_pvs_opn = 6
hd_pbuf_cnt = 1280
j2_inodeCacheSize = 400
j2_metadataCacheSize = 400
 j2_dynamicBufferPreallocation = 16
 j2_maxUsableMaxTransfer = 512
pgahd_scale_thresh = 0
hd_pendqblked = 0
psbufwaitcnt = 347632
fsbufwaitcnt = 1541572
rfsbufwaitcnt = 0
xpagerbufwaitcnt = 0
--- Em oracle_br@yahoogrupos.com.br, Phael [EMAIL PROTECTED] escreveu

 Ola Jemerson,

 Ja tive problemas com performance com AIX.
 No meu caso o problema era com um parametro do SO.
 Distrubuição da memória cache.

 executa esse arquivo ai:

 # /usjr/samples/kernel/vmtune

 colo o resultado ai.

 Raphael



 - Original Message - 
 From: Jemerson Dutra [EMAIL PROTECTED]
 To: oracle_br@yahoogrupos.com.br
 Sent: Thursday, April 06, 2006 2:35 PM
 Subject: [oracle_br] Re: Performance Horrivel


 Ae chiappa, da uma ajuda ai.
 Jemerson
 --- Em oracle_br@yahoogrupos.com.br, Jemerson Dutra [EMAIL PROTECTED]
 escreveu
 
  Senhores, estamos com um servidor em producao que foi criado com
  alguns parametros default por causa de um ERP. Nos deparamos apos
 35
  dias, que o servidor esta com uma performance horrivel. Gostaria
da
  ajuda dos senhores, comentando/incluindo e ou alterando meu
 init.ora.
  Servidor IBM AIX 5.2
  4GB RAM
  4GB SWAP
  2 CPUS DE 1.2GHZ
  ORACLE 10GB DE BANCO
  CRIADO BLOCK_SIZE 4096KB
  # initMFGPRO.ora - oracle instance parameter file
  # include database configuration parameters
  ifile = /Hdados2/admin/MFGPRO/config.MFGPRO
  open_cursors = 512
  # NLS Parameters
NLS_LANGUAGE = AMERICAN
NLS_TERRITORY = AMERICA
NLS_NUMERIC_CHARACTERS = .,
  # tuning parameters
db_files = 200
db_file_multiblock_read_count = 32   # LARGE
  # --- Autor : Jemerson - Data: 20/02/2006
  # 
shared_pool_size = 3  ## 4
  # 
  sort_area_size = 262144 ## 1048576  #
LARGE
  sort_area_retained_size = 262144 ##
 1048576
  # LARGE
  large_pool_size = 15500 #25000 #15500 ## 1  #
  80MIL   large_pool_size = 614400
  java_pool_size  = 20971520 ##1
  # 
log_checkpoint_interval = 1
processes = 450 #500 # 600  #
 LARGE
log_buffer = 2048000 # 1048576 #
LARGE
max_dump_file_size = 10240 # limit trace file size to 5M ea
compatible=9.2.0
UTL_FILE_DIR=*   # if you want to use SQL Loader
  optimizer_mode = CHOOSE
  # 
  # liberado em 19/09/2005
  CURSOR_SHARING = FORCE ##EXACT ##FORCE
  # 
  dispatchers=(PROTOCOL=TCP) (dispatchers=20)
  service_names= MFGPRO
  instance_name= MFGPRO
  # 
  # melhoria no servicos MTS 10/10/2005
  # Autor: Jemerson Dutra
  mts_max_servers=100
  mts_servers=40
  mts_max_dispatchers=40
  O7_DICTIONARY_ACCESSIBILITY=TRUE
  GLOBAL_NAMES = TRUE
  dml_locks = 3408# LARGE
  open_links = 4
  sort_multiblock_read_count = 4
  dbwr_io_slaves = 2
  DB_WRITER_PROCESSES = 2
  DB_CACHE_SIZE = 17825792
  session_cached_cursors=100

Re: [oracle_br] Re: Performance Horrivel

2006-04-10 Por tôpico Phael
aff...
errei o caminho.
/usj troque para  /usr...

vmtune:2:once:/usr/samples/kernel/vmtune -p5 -P10 -r8 -R16 -f128 -F144

Raphael

- Original Message - 
From: Phael [EMAIL PROTECTED]
To: oracle_br@yahoogrupos.com.br
Sent: Monday, April 10, 2006 8:48 AM
Subject: Re: [oracle_br] Re: Performance Horrivel


 Jemerson,

 Adicione esssa linha no seu arquivo /etc/inittab

 vmtune:2:once:/usj/samples/kernel/vmtune -p5 -P10 -r8 -R16 -f128 -F144

 reinicie a maquina!

 E rode de novo o vmtune para ver se as alterações foram feitas:
 esses parametros deverão ser reajustados...
 minperm% = 20   para 5
 maxperm% = 80  para 10

 Atc

 Raphael


 - Original Message - 
 From: Jemerson Dutra [EMAIL PROTECTED]
 To: oracle_br@yahoogrupos.com.br
 Sent: Friday, April 07, 2006 7:57 AM
 Subject: [oracle_br] Re: Performance Horrivel


 Raphael, segue o resultado do vmtune

 memory_frames = 1048576
 pinnable_frames = 940632
 maxfree = 128
 minfree = 120
 minperm% = 20
 minperm = 19
 maxperm% = 80
 maxperm = 773332
 strict_maxperm = 0
 maxpin% = 80
 maxpin = 838861
 maxclient% = 80
 lrubucket = 131072
 defps = 1
 nokilluid = 0
 numpsblks = 1081344
 npskill = 8448
 npswarn = 33792
 v_pinshm = 0
 pta_balance_threshold = 0
 pagecoloring = 0
 framesets = 2
 mempools = 1
 lgpg_size = 0
 lgpg_regions = 0
 num_spec_dataseg = 0
 spec_dataseg_int = 512
 memory_affinity = 1
 htabscale = -1
 force_relalias_lite = 0
 relalias_percentage = 0
 data_stagger_interval = 161
 large_page_heap_size = 0
 kernel_heap_psize = 4096
 soft_min_lgpgs_vmpool = 0
 vmm_fork_policy = 0
 low_ps_handling = 1
 mbuf_heap_psize = 4096
 strict_maxclient = 1
 cpu_scale_memp = 8
 lru_poll_interval = 0
 lru_file_repage = 1
 memory_frames = 1048576
 minpgahead = 2
 memory_frames = 1048576
 minpgahead = 2
 maxpgahead = 8
 pd_npages = 65536
 maxrandwrt = 0
 numclust = 1
 numfsbufs = 196
 sync_release_ilock = 0
 lvm_bufcnt = 9
 j2_minPageReadAhead = 2
 j2_maxPageReadAhead = 128
 j2_nBufferPerPagerDevice = 512
 j2_nPagesPerWriteBehindCluster = 32
 j2_maxRandomWrite = 0
 j2_nRandomCluster = 0
 j2_non_fatal_crashes_system = 0
 j2_syncModifiedMapped = 1
 jfs_clread_enabled = 0
 jfs_use_read_lock = 1
 hd_pvs_opn = 6
 hd_pbuf_cnt = 1280
 j2_inodeCacheSize = 400
 j2_metadataCacheSize = 400
 j2_dynamicBufferPreallocation = 16
 j2_maxUsableMaxTransfer = 512
 pgahd_scale_thresh = 0
 hd_pendqblked = 0
 psbufwaitcnt = 347632
 fsbufwaitcnt = 1541572
 rfsbufwaitcnt = 0
 xpagerbufwaitcnt = 0
 --- Em oracle_br@yahoogrupos.com.br, Phael [EMAIL PROTECTED] escreveu

 Ola Jemerson,

 Ja tive problemas com performance com AIX.
 No meu caso o problema era com um parametro do SO.
 Distrubuição da memória cache.

 executa esse arquivo ai:

 # /usjr/samples/kernel/vmtune

 colo o resultado ai.

 Raphael



 - Original Message - 
 From: Jemerson Dutra [EMAIL PROTECTED]
 To: oracle_br@yahoogrupos.com.br
 Sent: Thursday, April 06, 2006 2:35 PM
 Subject: [oracle_br] Re: Performance Horrivel


 Ae chiappa, da uma ajuda ai.
 Jemerson
 --- Em oracle_br@yahoogrupos.com.br, Jemerson Dutra [EMAIL PROTECTED]
 escreveu
 
  Senhores, estamos com um servidor em producao que foi criado com
  alguns parametros default por causa de um ERP. Nos deparamos apos
 35
  dias, que o servidor esta com uma performance horrivel. Gostaria
 da
  ajuda dos senhores, comentando/incluindo e ou alterando meu
 init.ora.
  Servidor IBM AIX 5.2
  4GB RAM
  4GB SWAP
  2 CPUS DE 1.2GHZ
  ORACLE 10GB DE BANCO
  CRIADO BLOCK_SIZE 4096KB
  # initMFGPRO.ora - oracle instance parameter file
  # include database configuration parameters
  ifile = /Hdados2/admin/MFGPRO/config.MFGPRO
  open_cursors = 512
  # NLS Parameters
NLS_LANGUAGE = AMERICAN
NLS_TERRITORY = AMERICA
NLS_NUMERIC_CHARACTERS = .,
  # tuning parameters
db_files = 200
db_file_multiblock_read_count = 32   # LARGE
  # --- Autor : Jemerson - Data: 20/02/2006
  # 
shared_pool_size = 3  ## 4
  # 
  sort_area_size = 262144 ## 1048576  #
 LARGE
  sort_area_retained_size = 262144 ##
 1048576
  # LARGE
  large_pool_size = 15500 #25000 #15500 ## 1  #
  80MIL   large_pool_size = 614400
  java_pool_size  = 20971520 ##1
  # 
log_checkpoint_interval = 1
processes = 450 #500 # 600  #
 LARGE
log_buffer = 2048000 # 1048576 #
 LARGE
max_dump_file_size = 10240 # limit trace file size to 5M ea
compatible=9.2.0
UTL_FILE_DIR=*   # if you want to use SQL Loader
  optimizer_mode = CHOOSE
  # 
  # liberado em 19/09/2005
  CURSOR_SHARING = FORCE ##EXACT ##FORCE
  # 
  dispatchers=(PROTOCOL=TCP) (dispatchers=20)
  service_names= MFGPRO
  instance_name= MFGPRO

[oracle_br] Re: Performance Horrivel

2006-04-10 Por tôpico Jemerson Dutra
Chiappa, segue os dados solicitados, desde ja agradeco a atencao.

Deu uma melhor distribuida das tablespaces nos discos
- Tirei o Rbs do disco 5 e coloquei junto com o Software Oracle. 
- Algumas tablespaces de dados coloquei no Disco 3 juntamente com o 
ERP.
- o Disco 5 continua o mais pesado.
Atualmente tenho 5 discos.
Segue a distribuição. 
1) S.O 
2) Software Oracle + RBS
3) ERP  + Dados1
4) Indices + dic + Dados 2
5) Dados 3 (esse é o disco mais pesado) 
rollback segments:
tenho 5 rollback segs de 

A aplicação roda no proprio servidor e os usuarios(cerca de 130 
usuarios) acessam via telnet, consumindo cerca de 20mb cada.
Coloquei cerca de 10 usuarios em MTS

Segue os parametros alterados.
obs: Ainda não estou utilizando os parametros sga_max_size e 
workarea_size_policy(nao tenho detalhes de como usar).

# Sort_area_size 
# session_cached_cursors
# timed_statistics
# log_checkpoint_interval
===
Db_cache_size 
  Aumentei o Db_cache_size de 17825792 para 5000
   DB_CACHE_SIZE = 5000 #17825792 06/04/2006
===
 session_cached_cursors
 aumentei o session_cached_cursors de 100 para 300
 

# Sort_area_size 
Aumentei o Sort_area_size de 262144 para 1048576
  sort_area_size = 1048576 #262144 
  sort_area_retained_size = 1048576 #262144 


tenho um servidor IBM AIX 5.2L
COM 2 CPUs 1.2GHZ 
TOPAS 
S.O 
  KERNEL 10 
  USER   13
  WAIT   75
  IDLE2

Memory 
real,Mb  4096
% comp 71 
% nocomp   29.9 

paging space 
Size,MB 4096
% used53
% free46


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

 Colega, SE isto ainda é importante pra vc, releia aí a minha msg 
 anterior e manda a info que é pedida nela (ie, valor dos params, 
 workarea_size_policy, sga_max_size), diga EXATAMENTE o que vc mudou 
 que obteve aí esses tais 10% de melhoria, e como pedido manda a 
 config de rollback/undo e do seu , a distribuição de I/O de modo 
 geral, especs do hardware de I/O,  e ajunta com mais info de SO e 
 hardware (ie, RAM livre e usada , CPU usada, taxa de uso de swap), 
 que a gente pode tentar te ajudar.
  Também seria legal vc fazer e mandar pra lista um testes fora da 
 aplicação, tipo : cria uma tabela pequena, uma tabela média e 
uma 
 tabela grande, faz alguns SQLs diretamente em cima delas, se nem 
 isso ir bem a gente suspeita de configs de So e banco e de hardware 
 sub-dimensionado...
 
 []s
 
   Chiappa
 
 --- Em oracle_br@yahoogrupos.com.br, Jemerson Dutra 
[EMAIL PROTECTED] 
 escreveu
 
  Meu banco de dados continua horrivel, melhorou cerca de uns 10%. 
  porem acho que nao esta como eu gostaria.
  
  --- Em oracle_br@yahoogrupos.com.br, jkdutra [EMAIL PROTECTED] 
  escreveu
  
   Srs Meu banco é 9i creio que o awrrpt.sql é somente do 10g ne?
   Chiappa, O pessoal do E.R.P tinha um init.ora basico e eu 
acabei 
   fazendo algumas poucas alteracoes, porem minha experiencia 7 
anos 
  é 
   toda no 8i. e lendo algumas coisas acabei alterando alguns 
   parametros, tenho autonomia para alterar o que quiser desde que 
  nao 
   altere as tabelas.
   Vou estar respondendo os senhores amanha da empresa com calma 
  desde 
   ja agradeco a colaboração e espero poder contar com os 
senhores. 
   Chiappa, Sergio e Raphael Abraços.
   
   --- Em oracle_br@yahoogrupos.com.br, Sergio Leandro Ghellere 
   [EMAIL PROTECTED] escreveu
   
Ola Jemerson,

   é difícil achar encontrar um problema assim...
   só pra termos uma idéia, cola o resultado do AWR...
   executa no sqlplus.
   @$ORACLE_HOME/rdbms/admin/awrrpt.sql

pega aí um intervalo de algumas horas... normalmente o AWR 
 colhe 
   estatísticas a cada 
60min..

   cola as primeiras 100 linhas só pra termos uma idéia.


Grande abraço.


Sergio Leandro Ghellere
DBA Oracle
+55 (41) 9906-4813

On Thu Apr  6 15:19 , 'Phael' [EMAIL PROTECTED] sent:

Ola Jemerson,

Ja tive problemas com performance com AIX.
No meu caso o problema era com um parametro do SO.
Distrubuição da memória cache.

executa esse arquivo ai:

# /usjr/samples/kernel/vmtune

colo o resultado ai.

Raphael



- Original Message - 
From: Jemerson Dutra [EMAIL PROTECTED]
To: oracle_br@yahoogrupos.com.br
Sent: Thursday, April 06, 2006 2:35 PM
Subject: [oracle_br] Re: Performance Horrivel


Ae chiappa, da uma ajuda ai.
Jemerson
--- Em oracle_br@yahoogrupos.com.br, Jemerson Dutra 
escreveu

 Senhores, estamos com um servidor em producao que foi 
criado 
  com
 alguns parametros default por causa de um ERP. Nos 
deparamos 
   apos
35
 dias, que o servidor esta com uma performance horrivel. 
   Gostaria da
 ajuda dos senhores, comentando/incluindo e ou alterando meu
init.ora.
 Servidor IBM AIX 5.2
 4GB RAM
 4GB SWAP
 2 CPUS DE 1.2GHZ
 ORACLE 10GB DE BANCO

[oracle_br] Re: Performance Horrivel

2006-04-10 Por tôpico Jemerson Dutra
Raphael, desculpe minha ignorancia mas o que esses parametros 
controlam? e o que eles farao??
Jemerson

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

 aff...
 errei o caminho.
 /usj troque para  /usr...
 
 vmtune:2:once:/usr/samples/kernel/vmtune -p5 -P10 -r8 -R16 -f128 -
F144
 
 Raphael
 
 - Original Message - 
 From: Phael [EMAIL PROTECTED]
 To: oracle_br@yahoogrupos.com.br
 Sent: Monday, April 10, 2006 8:48 AM
 Subject: Re: [oracle_br] Re: Performance Horrivel
 
 
  Jemerson,
 
  Adicione esssa linha no seu arquivo /etc/inittab
 
  vmtune:2:once:/usj/samples/kernel/vmtune -p5 -P10 -r8 -R16 -f128 -
F144
 
  reinicie a maquina!
 
  E rode de novo o vmtune para ver se as alterações foram feitas:
  esses parametros deverão ser reajustados...
  minperm% = 20   para 5
  maxperm% = 80  para 10
 
  Atc
 
  Raphael
 
 
  - Original Message - 
  From: Jemerson Dutra [EMAIL PROTECTED]
  To: oracle_br@yahoogrupos.com.br
  Sent: Friday, April 07, 2006 7:57 AM
  Subject: [oracle_br] Re: Performance Horrivel
 
 
  Raphael, segue o resultado do vmtune
 
  memory_frames = 1048576
  pinnable_frames = 940632
  maxfree = 128
  minfree = 120
  minperm% = 20
  minperm = 19
  maxperm% = 80
  maxperm = 773332
  strict_maxperm = 0
  maxpin% = 80
  maxpin = 838861
  maxclient% = 80
  lrubucket = 131072
  defps = 1
  nokilluid = 0
  numpsblks = 1081344
  npskill = 8448
  npswarn = 33792
  v_pinshm = 0
  pta_balance_threshold = 0
  pagecoloring = 0
  framesets = 2
  mempools = 1
  lgpg_size = 0
  lgpg_regions = 0
  num_spec_dataseg = 0
  spec_dataseg_int = 512
  memory_affinity = 1
  htabscale = -1
  force_relalias_lite = 0
  relalias_percentage = 0
  data_stagger_interval = 161
  large_page_heap_size = 0
  kernel_heap_psize = 4096
  soft_min_lgpgs_vmpool = 0
  vmm_fork_policy = 0
  low_ps_handling = 1
  mbuf_heap_psize = 4096
  strict_maxclient = 1
  cpu_scale_memp = 8
  lru_poll_interval = 0
  lru_file_repage = 1
  memory_frames = 1048576
  minpgahead = 2
  memory_frames = 1048576
  minpgahead = 2
  maxpgahead = 8
  pd_npages = 65536
  maxrandwrt = 0
  numclust = 1
  numfsbufs = 196
  sync_release_ilock = 0
  lvm_bufcnt = 9
  j2_minPageReadAhead = 2
  j2_maxPageReadAhead = 128
  j2_nBufferPerPagerDevice = 512
  j2_nPagesPerWriteBehindCluster = 32
  j2_maxRandomWrite = 0
  j2_nRandomCluster = 0
  j2_non_fatal_crashes_system = 0
  j2_syncModifiedMapped = 1
  jfs_clread_enabled = 0
  jfs_use_read_lock = 1
  hd_pvs_opn = 6
  hd_pbuf_cnt = 1280
  j2_inodeCacheSize = 400
  j2_metadataCacheSize = 400
  j2_dynamicBufferPreallocation = 16
  j2_maxUsableMaxTransfer = 512
  pgahd_scale_thresh = 0
  hd_pendqblked = 0
  psbufwaitcnt = 347632
  fsbufwaitcnt = 1541572
  rfsbufwaitcnt = 0
  xpagerbufwaitcnt = 0
  --- Em oracle_br@yahoogrupos.com.br, Phael [EMAIL PROTECTED] 
escreveu
 
  Ola Jemerson,
 
  Ja tive problemas com performance com AIX.
  No meu caso o problema era com um parametro do SO.
  Distrubuição da memória cache.
 
  executa esse arquivo ai:
 
  # /usjr/samples/kernel/vmtune
 
  colo o resultado ai.
 
  Raphael
 
 
 
  - Original Message - 
  From: Jemerson Dutra [EMAIL PROTECTED]
  To: oracle_br@yahoogrupos.com.br
  Sent: Thursday, April 06, 2006 2:35 PM
  Subject: [oracle_br] Re: Performance Horrivel
 
 
  Ae chiappa, da uma ajuda ai.
  Jemerson
  --- Em oracle_br@yahoogrupos.com.br, Jemerson Dutra 
[EMAIL PROTECTED]
  escreveu
  
   Senhores, estamos com um servidor em producao que foi criado 
com
   alguns parametros default por causa de um ERP. Nos deparamos 
apos
  35
   dias, que o servidor esta com uma performance horrivel. 
Gostaria
  da
   ajuda dos senhores, comentando/incluindo e ou alterando meu
  init.ora.
   Servidor IBM AIX 5.2
   4GB RAM
   4GB SWAP
   2 CPUS DE 1.2GHZ
   ORACLE 10GB DE BANCO
   CRIADO BLOCK_SIZE 4096KB
   # initMFGPRO.ora - oracle instance parameter file
   # include database configuration parameters
   ifile = /Hdados2/admin/MFGPRO/config.MFGPRO
   open_cursors = 512
   # NLS Parameters
 NLS_LANGUAGE = AMERICAN
 NLS_TERRITORY = AMERICA
 NLS_NUMERIC_CHARACTERS = .,
   # tuning parameters
 db_files = 200
 db_file_multiblock_read_count = 32   # LARGE
   # --- Autor : Jemerson - Data: 20/02/2006
   # 
 shared_pool_size = 3  ## 4
   # 
   sort_area_size = 262144 ## 1048576  #
  LARGE
   sort_area_retained_size = 262144 ##
  1048576
   # LARGE
   large_pool_size = 15500 #25000 #15500 ## 
1  #
   80MIL   large_pool_size = 614400
   java_pool_size  = 20971520 ##1
   # 
 log_checkpoint_interval = 1
 processes = 450 #500 # 600  #
  LARGE
 log_buffer = 2048000 # 1048576 #
  LARGE
 max_dump_file_size = 10240 # limit trace file size to 5M ea

Re: [oracle_br] Re: Performance Horrivel

2006-04-10 Por tôpico Phael
Jemerson,

Também não sou nenhum especialista em AIX.
Na verdade quando tive problemas de performance no AIX
fiz varios tunings na base e se esgotaram as
tentativas de melhoras, tendo pouco sucesso. Chamei um
tecnico para otimizar o AIX e ele me disse que esse parametro
controla a distribuição da memória Cache da máquina sendo que
por default ele libera 80% do recurso para o SO e 20% para
demais softwares... vai entende isso???...se estiver falando besteira
alguem me corrija por facor.enfim  mudei esse parametro!!!
Como estavam tendo bastante paginação e swap a mudança
dessa configuração pra 10% e 5% foi otima acabando com
os problemas de paginações e swap.
Esse procedimento foi feito em um AIX 4.3.3 mas acho que
serve para o AIX 5.2.
Não custa tentar, caso não der certo é só remover a linha e
entrar em contato com algum especialista em AIX para
entender melhor esses reajuste.

atc

Raphael


- Original Message - 
From: Jemerson Dutra [EMAIL PROTECTED]
To: oracle_br@yahoogrupos.com.br
Sent: Monday, April 10, 2006 10:45 AM
Subject: [oracle_br] Re: Performance Horrivel


Raphael, desculpe minha ignorancia mas o que esses parametros
controlam? e o que eles farao??
Jemerson

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

 aff...
 errei o caminho.
 /usj troque para  /usr...

 vmtune:2:once:/usr/samples/kernel/vmtune -p5 -P10 -r8 -R16 -f128 -
F144

 Raphael

 - Original Message - 
 From: Phael [EMAIL PROTECTED]
 To: oracle_br@yahoogrupos.com.br
 Sent: Monday, April 10, 2006 8:48 AM
 Subject: Re: [oracle_br] Re: Performance Horrivel


  Jemerson,
 
  Adicione esssa linha no seu arquivo /etc/inittab
 
  vmtune:2:once:/usj/samples/kernel/vmtune -p5 -P10 -r8 -R16 -f128 -
F144
 
  reinicie a maquina!
 
  E rode de novo o vmtune para ver se as alterações foram feitas:
  esses parametros deverão ser reajustados...
  minperm% = 20   para 5
  maxperm% = 80  para 10
 
  Atc
 
  Raphael
 
 
  - Original Message - 
  From: Jemerson Dutra [EMAIL PROTECTED]
  To: oracle_br@yahoogrupos.com.br
  Sent: Friday, April 07, 2006 7:57 AM
  Subject: [oracle_br] Re: Performance Horrivel
 
 
  Raphael, segue o resultado do vmtune
 
  memory_frames = 1048576
  pinnable_frames = 940632
  maxfree = 128
  minfree = 120
  minperm% = 20
  minperm = 19
  maxperm% = 80
  maxperm = 773332
  strict_maxperm = 0
  maxpin% = 80
  maxpin = 838861
  maxclient% = 80
  lrubucket = 131072
  defps = 1
  nokilluid = 0
  numpsblks = 1081344
  npskill = 8448
  npswarn = 33792
  v_pinshm = 0
  pta_balance_threshold = 0
  pagecoloring = 0
  framesets = 2
  mempools = 1
  lgpg_size = 0
  lgpg_regions = 0
  num_spec_dataseg = 0
  spec_dataseg_int = 512
  memory_affinity = 1
  htabscale = -1
  force_relalias_lite = 0
  relalias_percentage = 0
  data_stagger_interval = 161
  large_page_heap_size = 0
  kernel_heap_psize = 4096
  soft_min_lgpgs_vmpool = 0
  vmm_fork_policy = 0
  low_ps_handling = 1
  mbuf_heap_psize = 4096
  strict_maxclient = 1
  cpu_scale_memp = 8
  lru_poll_interval = 0
  lru_file_repage = 1
  memory_frames = 1048576
  minpgahead = 2
  memory_frames = 1048576
  minpgahead = 2
  maxpgahead = 8
  pd_npages = 65536
  maxrandwrt = 0
  numclust = 1
  numfsbufs = 196
  sync_release_ilock = 0
  lvm_bufcnt = 9
  j2_minPageReadAhead = 2
  j2_maxPageReadAhead = 128
  j2_nBufferPerPagerDevice = 512
  j2_nPagesPerWriteBehindCluster = 32
  j2_maxRandomWrite = 0
  j2_nRandomCluster = 0
  j2_non_fatal_crashes_system = 0
  j2_syncModifiedMapped = 1
  jfs_clread_enabled = 0
  jfs_use_read_lock = 1
  hd_pvs_opn = 6
  hd_pbuf_cnt = 1280
  j2_inodeCacheSize = 400
  j2_metadataCacheSize = 400
  j2_dynamicBufferPreallocation = 16
  j2_maxUsableMaxTransfer = 512
  pgahd_scale_thresh = 0
  hd_pendqblked = 0
  psbufwaitcnt = 347632
  fsbufwaitcnt = 1541572
  rfsbufwaitcnt = 0
  xpagerbufwaitcnt = 0
  --- Em oracle_br@yahoogrupos.com.br, Phael [EMAIL PROTECTED]
escreveu
 
  Ola Jemerson,
 
  Ja tive problemas com performance com AIX.
  No meu caso o problema era com um parametro do SO.
  Distrubuição da memória cache.
 
  executa esse arquivo ai:
 
  # /usjr/samples/kernel/vmtune
 
  colo o resultado ai.
 
  Raphael
 
 
 
  - Original Message - 
  From: Jemerson Dutra [EMAIL PROTECTED]
  To: oracle_br@yahoogrupos.com.br
  Sent: Thursday, April 06, 2006 2:35 PM
  Subject: [oracle_br] Re: Performance Horrivel
 
 
  Ae chiappa, da uma ajuda ai.
  Jemerson
  --- Em oracle_br@yahoogrupos.com.br, Jemerson Dutra
[EMAIL PROTECTED]
  escreveu
  
   Senhores, estamos com um servidor em producao que foi criado
com
   alguns parametros default por causa de um ERP. Nos deparamos
apos
  35
   dias, que o servidor esta com uma performance horrivel.
Gostaria
  da
   ajuda dos senhores, comentando/incluindo e ou alterando meu
  init.ora.
   Servidor IBM AIX 5.2
   4GB RAM
   4GB SWAP
   2 CPUS DE 1.2GHZ
   ORACLE 10GB DE BANCO
   CRIADO BLOCK_SIZE 4096KB
   # initMFGPRO.ora - oracle instance parameter file
   # include

[oracle_br] Re: Performance Horrivel

2006-04-10 Por tôpico jlchiappa
 EXATAMENTE o que vc 
mudou 
  que obteve aí esses tais 10% de melhoria, e como pedido manda a 
  config de rollback/undo e do seu , a distribuição de I/O de modo 
  geral, especs do hardware de I/O,  e ajunta com mais info de SO e 
  hardware (ie, RAM livre e usada , CPU usada, taxa de uso de 
swap), 
  que a gente pode tentar te ajudar.
   Também seria legal vc fazer e mandar pra lista um testes fora da 
  aplicação, tipo : cria uma tabela pequena, uma tabela média e 
 uma 
  tabela grande, faz alguns SQLs diretamente em cima delas, se 
nem 
  isso ir bem a gente suspeita de configs de So e banco e de 
hardware 
  sub-dimensionado...
  
  []s
  
Chiappa
  
  --- Em oracle_br@yahoogrupos.com.br, Jemerson Dutra 
 [EMAIL PROTECTED] 
  escreveu
  
   Meu banco de dados continua horrivel, melhorou cerca de uns 
10%. 
   porem acho que nao esta como eu gostaria.
   
   --- Em oracle_br@yahoogrupos.com.br, jkdutra [EMAIL PROTECTED] 
   escreveu
   
Srs Meu banco é 9i creio que o awrrpt.sql é somente do 10g ne?
Chiappa, O pessoal do E.R.P tinha um init.ora basico e eu 
 acabei 
fazendo algumas poucas alteracoes, porem minha experiencia 7 
 anos 
   é 
toda no 8i. e lendo algumas coisas acabei alterando alguns 
parametros, tenho autonomia para alterar o que quiser desde 
que 
   nao 
altere as tabelas.
Vou estar respondendo os senhores amanha da empresa com calma 
   desde 
ja agradeco a colaboração e espero poder contar com os 
 senhores. 
Chiappa, Sergio e Raphael Abraços.

--- Em oracle_br@yahoogrupos.com.br, Sergio Leandro Ghellere 
[EMAIL PROTECTED] escreveu

 Ola Jemerson,
 
é difícil achar encontrar um problema assim...
só pra termos uma idéia, cola o resultado do AWR...
executa no sqlplus.
@$ORACLE_HOME/rdbms/admin/awrrpt.sql
 
 pega aí um intervalo de algumas horas... normalmente o AWR 
  colhe 
estatísticas a cada 
 60min..
 
cola as primeiras 100 linhas só pra termos uma idéia.
 
 
 Grande abraço.
 
 
 Sergio Leandro Ghellere
 DBA Oracle
 +55 (41) 9906-4813
 
 On Thu Apr  6 15:19 , 'Phael' [EMAIL PROTECTED] sent:
 
 Ola Jemerson,
 
 Ja tive problemas com performance com AIX.
 No meu caso o problema era com um parametro do SO.
 Distrubuição da memória cache.
 
 executa esse arquivo ai:
 
 # /usjr/samples/kernel/vmtune
 
 colo o resultado ai.
 
 Raphael
 
 
 
 - Original Message - 
 From: Jemerson Dutra [EMAIL PROTECTED]
 To: oracle_br@yahoogrupos.com.br
 Sent: Thursday, April 06, 2006 2:35 PM
 Subject: [oracle_br] Re: Performance Horrivel
 
 
 Ae chiappa, da uma ajuda ai.
 Jemerson
 --- Em oracle_br@yahoogrupos.com.br, Jemerson Dutra 
 escreveu
 
  Senhores, estamos com um servidor em producao que foi 
 criado 
   com
  alguns parametros default por causa de um ERP. Nos 
 deparamos 
apos
 35
  dias, que o servidor esta com uma performance horrivel. 
Gostaria da
  ajuda dos senhores, comentando/incluindo e ou alterando 
meu
 init.ora.
  Servidor IBM AIX 5.2
  4GB RAM
  4GB SWAP
  2 CPUS DE 1.2GHZ
  ORACLE 10GB DE BANCO
  CRIADO BLOCK_SIZE 4096KB
  # initMFGPRO.ora - oracle instance parameter file
  # include database configuration parameters
  ifile = /Hdados2/admin/MFGPRO/config.MFGPRO
  open_cursors = 512
  # NLS Parameters
NLS_LANGUAGE = AMERICAN
NLS_TERRITORY = AMERICA
NLS_NUMERIC_CHARACTERS = .,
  # tuning parameters
db_files = 200
db_file_multiblock_read_count = 32   # 
LARGE
  # --- Autor : Jemerson - Data: 20/02/2006
  # 
shared_pool_size = 3  ## 4
  # 
  sort_area_size = 262144 ## 
 1048576  
  # 
LARGE
  sort_area_retained_size = 262144 ##
 1048576
  # LARGE
  large_pool_size = 15500 #25000 #15500 ## 
   1  
#
  80MIL   large_pool_size = 614400
  java_pool_size  = 20971520 ##1
  # 
log_checkpoint_interval = 1
processes = 450 #500 # 
  600  
   #
 LARGE
log_buffer = 2048000 # 
 1048576 
   # 
LARGE
max_dump_file_size = 10240 # limit trace file size to 
5M 
 ea
compatible=9.2.0
UTL_FILE_DIR=*   # if you want to use SQL 
  Loader
  optimizer_mode = CHOOSE
  # 
  # liberado em 19/09/2005
  CURSOR_SHARING = FORCE ##EXACT ##FORCE
  # 
  dispatchers=(PROTOCOL=TCP) (dispatchers=20)
  service_names= MFGPRO

Re: [oracle_br] Re: Performance Horrivel

2006-04-10 Por tôpico Sharif G Raduan
.

Remember that although AIX associates this memory with the Oracle processes 
(because Oracle requested the file I/O), all of the memory used to buffer 
file I/O is completely allocated and controlled by AIX, not Oracle.  If you 
need help checking, setting, or tuning the AIX VMM, contact your AIX systems 
administrator and/or IBM Support.  You may also want to review the AIX 
Performance Management Guide by IBM linked in the References section 
below.

UPDATE: After this article was originally written, IBM has introduced a new 
VMM parameter which is also very helpful with this issue. The parameter 
is...


lru_file_repage
The default value is 1, but it is recommended to set this to 0. This 
setting hints to the VMM to only steal file pages (from the AIX file buffer 
cache) and leave the computational pages (from the SGA) alone.

This new lru_file_repage parameter is only available on AIX 5.2 ML04+ and 
AIX 5.3 ML01+




[]´s

Sharif

- Original Message - 
From: Phael [EMAIL PROTECTED]
To: oracle_br@yahoogrupos.com.br
Sent: Monday, April 10, 2006 11:10 AM
Subject: Re: [oracle_br] Re: Performance Horrivel


 Jemerson,

 Também não sou nenhum especialista em AIX.
 Na verdade quando tive problemas de performance no AIX
 fiz varios tunings na base e se esgotaram as
 tentativas de melhoras, tendo pouco sucesso. Chamei um
 tecnico para otimizar o AIX e ele me disse que esse parametro
 controla a distribuição da memória Cache da máquina sendo que
 por default ele libera 80% do recurso para o SO e 20% para
 demais softwares... vai entende isso???...se estiver falando besteira
 alguem me corrija por facor.enfim  mudei esse parametro!!!
 Como estavam tendo bastante paginação e swap a mudança
 dessa configuração pra 10% e 5% foi otima acabando com
 os problemas de paginações e swap.
 Esse procedimento foi feito em um AIX 4.3.3 mas acho que
 serve para o AIX 5.2.
 Não custa tentar, caso não der certo é só remover a linha e
 entrar em contato com algum especialista em AIX para
 entender melhor esses reajuste.

 atc

 Raphael


 - Original Message - 
 From: Jemerson Dutra [EMAIL PROTECTED]
 To: oracle_br@yahoogrupos.com.br
 Sent: Monday, April 10, 2006 10:45 AM
 Subject: [oracle_br] Re: Performance Horrivel


 Raphael, desculpe minha ignorancia mas o que esses parametros
 controlam? e o que eles farao??
 Jemerson

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

 aff...
 errei o caminho.
 /usj troque para  /usr...

 vmtune:2:once:/usr/samples/kernel/vmtune -p5 -P10 -r8 -R16 -f128 -
 F144

 Raphael

 - Original Message - 
 From: Phael [EMAIL PROTECTED]
 To: oracle_br@yahoogrupos.com.br
 Sent: Monday, April 10, 2006 8:48 AM
 Subject: Re: [oracle_br] Re: Performance Horrivel


  Jemerson,
 
  Adicione esssa linha no seu arquivo /etc/inittab
 
  vmtune:2:once:/usj/samples/kernel/vmtune -p5 -P10 -r8 -R16 -f128 -
 F144
 
  reinicie a maquina!
 
  E rode de novo o vmtune para ver se as alterações foram feitas:
  esses parametros deverão ser reajustados...
  minperm% = 20   para 5
  maxperm% = 80  para 10
 
  Atc
 
  Raphael
 
 
  - Original Message - 
  From: Jemerson Dutra [EMAIL PROTECTED]
  To: oracle_br@yahoogrupos.com.br
  Sent: Friday, April 07, 2006 7:57 AM
  Subject: [oracle_br] Re: Performance Horrivel
 
 
  Raphael, segue o resultado do vmtune
 
  memory_frames = 1048576
  pinnable_frames = 940632
  maxfree = 128
  minfree = 120
  minperm% = 20
  minperm = 19
  maxperm% = 80
  maxperm = 773332
  strict_maxperm = 0
  maxpin% = 80
  maxpin = 838861
  maxclient% = 80
  lrubucket = 131072
  defps = 1
  nokilluid = 0
  numpsblks = 1081344
  npskill = 8448
  npswarn = 33792
  v_pinshm = 0
  pta_balance_threshold = 0
  pagecoloring = 0
  framesets = 2
  mempools = 1
  lgpg_size = 0
  lgpg_regions = 0
  num_spec_dataseg = 0
  spec_dataseg_int = 512
  memory_affinity = 1
  htabscale = -1
  force_relalias_lite = 0
  relalias_percentage = 0
  data_stagger_interval = 161
  large_page_heap_size = 0
  kernel_heap_psize = 4096
  soft_min_lgpgs_vmpool = 0
  vmm_fork_policy = 0
  low_ps_handling = 1
  mbuf_heap_psize = 4096
  strict_maxclient = 1
  cpu_scale_memp = 8
  lru_poll_interval = 0
  lru_file_repage = 1
  memory_frames = 1048576
  minpgahead = 2
  memory_frames = 1048576
  minpgahead = 2
  maxpgahead = 8
  pd_npages = 65536
  maxrandwrt = 0
  numclust = 1
  numfsbufs = 196
  sync_release_ilock = 0
  lvm_bufcnt = 9
  j2_minPageReadAhead = 2
  j2_maxPageReadAhead = 128
  j2_nBufferPerPagerDevice = 512
  j2_nPagesPerWriteBehindCluster = 32
  j2_maxRandomWrite = 0
  j2_nRandomCluster = 0
  j2_non_fatal_crashes_system = 0
  j2_syncModifiedMapped = 1
  jfs_clread_enabled = 0
  jfs_use_read_lock = 1
  hd_pvs_opn = 6
  hd_pbuf_cnt = 1280
  j2_inodeCacheSize = 400
  j2_metadataCacheSize = 400
  j2_dynamicBufferPreallocation = 16
  j2_maxUsableMaxTransfer = 512
  pgahd_scale_thresh = 0
  hd_pendqblked = 0
  psbufwaitcnt = 347632
  fsbufwaitcnt = 1541572
  rfsbufwaitcnt = 0

[oracle_br] Re: Performance Horrivel

2006-04-08 Por tôpico Jemerson Dutra
Meu banco de dados continua horrivel, melhorou cerca de uns 10%. 
porem acho que nao esta como eu gostaria.

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

 Srs Meu banco é 9i creio que o awrrpt.sql é somente do 10g ne?
 Chiappa, O pessoal do E.R.P tinha um init.ora basico e eu acabei 
 fazendo algumas poucas alteracoes, porem minha experiencia 7 anos 
é 
 toda no 8i. e lendo algumas coisas acabei alterando alguns 
 parametros, tenho autonomia para alterar o que quiser desde que 
nao 
 altere as tabelas.
 Vou estar respondendo os senhores amanha da empresa com calma 
desde 
 ja agradeco a colaboração e espero poder contar com os senhores. 
 Chiappa, Sergio e Raphael Abraços.
 
 --- Em oracle_br@yahoogrupos.com.br, Sergio Leandro Ghellere 
 [EMAIL PROTECTED] escreveu
 
  Ola Jemerson,
  
 é difícil achar encontrar um problema assim...
 só pra termos uma idéia, cola o resultado do AWR...
 executa no sqlplus.
 @$ORACLE_HOME/rdbms/admin/awrrpt.sql
  
  pega aí um intervalo de algumas horas... normalmente o AWR colhe 
 estatísticas a cada 
  60min..
  
 cola as primeiras 100 linhas só pra termos uma idéia.
  
  
  Grande abraço.
  
  
  Sergio Leandro Ghellere
  DBA Oracle
  +55 (41) 9906-4813
  
  On Thu Apr  6 15:19 , 'Phael' [EMAIL PROTECTED] sent:
  
  Ola Jemerson,
  
  Ja tive problemas com performance com AIX.
  No meu caso o problema era com um parametro do SO.
  Distrubuição da memória cache.
  
  executa esse arquivo ai:
  
  # /usjr/samples/kernel/vmtune
  
  colo o resultado ai.
  
  Raphael
  
  
  
  - Original Message - 
  From: Jemerson Dutra [EMAIL PROTECTED]
  To: oracle_br@yahoogrupos.com.br
  Sent: Thursday, April 06, 2006 2:35 PM
  Subject: [oracle_br] Re: Performance Horrivel
  
  
  Ae chiappa, da uma ajuda ai.
  Jemerson
  --- Em oracle_br@yahoogrupos.com.br, Jemerson Dutra 
  escreveu
  
   Senhores, estamos com um servidor em producao que foi criado 
com
   alguns parametros default por causa de um ERP. Nos deparamos 
 apos
  35
   dias, que o servidor esta com uma performance horrivel. 
 Gostaria da
   ajuda dos senhores, comentando/incluindo e ou alterando meu
  init.ora.
   Servidor IBM AIX 5.2
   4GB RAM
   4GB SWAP
   2 CPUS DE 1.2GHZ
   ORACLE 10GB DE BANCO
   CRIADO BLOCK_SIZE 4096KB
   # initMFGPRO.ora - oracle instance parameter file
   # include database configuration parameters
   ifile = /Hdados2/admin/MFGPRO/config.MFGPRO
   open_cursors = 512
   # NLS Parameters
 NLS_LANGUAGE = AMERICAN
 NLS_TERRITORY = AMERICA
 NLS_NUMERIC_CHARACTERS = .,
   # tuning parameters
 db_files = 200
 db_file_multiblock_read_count = 32   # LARGE
   # --- Autor : Jemerson - Data: 20/02/2006
   # 
 shared_pool_size = 3  ## 4
   # 
   sort_area_size = 262144 ## 1048576  # 
 LARGE
   sort_area_retained_size = 262144 ##
  1048576
   # LARGE
   large_pool_size = 15500 #25000 #15500 ## 
1  
 #
   80MIL   large_pool_size = 614400
   java_pool_size  = 20971520 ##1
   # 
 log_checkpoint_interval = 1
 processes = 450 #500 # 600  
#
  LARGE
 log_buffer = 2048000 # 1048576 
# 
 LARGE
 max_dump_file_size = 10240 # limit trace file size to 5M ea
 compatible=9.2.0
 UTL_FILE_DIR=*   # if you want to use SQL Loader
   optimizer_mode = CHOOSE
   # 
   # liberado em 19/09/2005
   CURSOR_SHARING = FORCE ##EXACT ##FORCE
   # 
   dispatchers=(PROTOCOL=TCP) (dispatchers=20)
   service_names= MFGPRO
   instance_name= MFGPRO
   # 
   # melhoria no servicos MTS 10/10/2005
   # Autor: Jemerson Dutra
   mts_max_servers=100
   mts_servers=40
   mts_max_dispatchers=40
   O7_DICTIONARY_ACCESSIBILITY=TRUE
   GLOBAL_NAMES = TRUE
   dml_locks = 3408# LARGE
   open_links = 4
   sort_multiblock_read_count = 4
   dbwr_io_slaves = 2
   DB_WRITER_PROCESSES = 2
   DB_CACHE_SIZE = 17825792
   session_cached_cursors=100
   timed_statistics = false;
  
  
  
  
  
  
  
  
--
 
  
  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] Re: Performance Horrivel

2006-04-06 Por tôpico Jemerson Dutra
Ae chiappa, da uma ajuda ai.
Jemerson
--- Em oracle_br@yahoogrupos.com.br, Jemerson Dutra [EMAIL PROTECTED] 
escreveu

 Senhores, estamos com um servidor em producao que foi criado com 
 alguns parametros default por causa de um ERP. Nos deparamos apos 
35 
 dias, que o servidor esta com uma performance horrivel. Gostaria da 
 ajuda dos senhores, comentando/incluindo e ou alterando meu 
init.ora.
 Servidor IBM AIX 5.2 
 4GB RAM
 4GB SWAP
 2 CPUS DE 1.2GHZ 
 ORACLE 10GB DE BANCO
 CRIADO BLOCK_SIZE 4096KB
 # initMFGPRO.ora - oracle instance parameter file
 # include database configuration parameters
 ifile = /Hdados2/admin/MFGPRO/config.MFGPRO
 open_cursors = 512
 # NLS Parameters
   NLS_LANGUAGE = AMERICAN
   NLS_TERRITORY = AMERICA
   NLS_NUMERIC_CHARACTERS = .,
 # tuning parameters
   db_files = 200
   db_file_multiblock_read_count = 32   # LARGE
 # --- Autor : Jemerson - Data: 20/02/2006 
 # 
   shared_pool_size = 3  ## 4
 # 
 sort_area_size = 262144 ## 1048576  # LARGE
 sort_area_retained_size = 262144 ## 
1048576  
 # LARGE
 large_pool_size = 15500 #25000 #15500 ## 1  # 
 80MIL   large_pool_size = 614400
 java_pool_size  = 20971520 ##1  
 # 
   log_checkpoint_interval = 1
   processes = 450 #500 # 600  # 
LARGE
   log_buffer = 2048000 # 1048576 # LARGE
   max_dump_file_size = 10240 # limit trace file size to 5M ea
   compatible=9.2.0
   UTL_FILE_DIR=*   # if you want to use SQL Loader
 optimizer_mode = CHOOSE
 # 
 # liberado em 19/09/2005
 CURSOR_SHARING = FORCE ##EXACT ##FORCE 
 # 
 dispatchers=(PROTOCOL=TCP) (dispatchers=20)
 service_names= MFGPRO
 instance_name= MFGPRO
 # 
 # melhoria no servicos MTS 10/10/2005 
 # Autor: Jemerson Dutra
 mts_max_servers=100
 mts_servers=40 
 mts_max_dispatchers=40 
 O7_DICTIONARY_ACCESSIBILITY=TRUE
 GLOBAL_NAMES = TRUE
 dml_locks = 3408# LARGE
 open_links = 4
 sort_multiblock_read_count = 4
 dbwr_io_slaves = 2
 DB_WRITER_PROCESSES = 2
 DB_CACHE_SIZE = 17825792
 session_cached_cursors=100
 timed_statistics = false;







--
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: Performance Horrivel

2006-04-06 Por tôpico Phael
Ola Jemerson,

Ja tive problemas com performance com AIX.
No meu caso o problema era com um parametro do SO.
Distrubuição da memória cache.

executa esse arquivo ai:

# /usjr/samples/kernel/vmtune

colo o resultado ai.

Raphael



- Original Message - 
From: Jemerson Dutra [EMAIL PROTECTED]
To: oracle_br@yahoogrupos.com.br
Sent: Thursday, April 06, 2006 2:35 PM
Subject: [oracle_br] Re: Performance Horrivel


Ae chiappa, da uma ajuda ai.
Jemerson
--- Em oracle_br@yahoogrupos.com.br, Jemerson Dutra [EMAIL PROTECTED]
escreveu

 Senhores, estamos com um servidor em producao que foi criado com
 alguns parametros default por causa de um ERP. Nos deparamos apos
35
 dias, que o servidor esta com uma performance horrivel. Gostaria da
 ajuda dos senhores, comentando/incluindo e ou alterando meu
init.ora.
 Servidor IBM AIX 5.2
 4GB RAM
 4GB SWAP
 2 CPUS DE 1.2GHZ
 ORACLE 10GB DE BANCO
 CRIADO BLOCK_SIZE 4096KB
 # initMFGPRO.ora - oracle instance parameter file
 # include database configuration parameters
 ifile = /Hdados2/admin/MFGPRO/config.MFGPRO
 open_cursors = 512
 # NLS Parameters
   NLS_LANGUAGE = AMERICAN
   NLS_TERRITORY = AMERICA
   NLS_NUMERIC_CHARACTERS = .,
 # tuning parameters
   db_files = 200
   db_file_multiblock_read_count = 32   # LARGE
 # --- Autor : Jemerson - Data: 20/02/2006
 # 
   shared_pool_size = 3  ## 4
 # 
 sort_area_size = 262144 ## 1048576  # LARGE
 sort_area_retained_size = 262144 ##
1048576
 # LARGE
 large_pool_size = 15500 #25000 #15500 ## 1  #
 80MIL   large_pool_size = 614400
 java_pool_size  = 20971520 ##1
 # 
   log_checkpoint_interval = 1
   processes = 450 #500 # 600  #
LARGE
   log_buffer = 2048000 # 1048576 # LARGE
   max_dump_file_size = 10240 # limit trace file size to 5M ea
   compatible=9.2.0
   UTL_FILE_DIR=*   # if you want to use SQL Loader
 optimizer_mode = CHOOSE
 # 
 # liberado em 19/09/2005
 CURSOR_SHARING = FORCE ##EXACT ##FORCE
 # 
 dispatchers=(PROTOCOL=TCP) (dispatchers=20)
 service_names= MFGPRO
 instance_name= MFGPRO
 # 
 # melhoria no servicos MTS 10/10/2005
 # Autor: Jemerson Dutra
 mts_max_servers=100
 mts_servers=40
 mts_max_dispatchers=40
 O7_DICTIONARY_ACCESSIBILITY=TRUE
 GLOBAL_NAMES = TRUE
 dml_locks = 3408# LARGE
 open_links = 4
 sort_multiblock_read_count = 4
 dbwr_io_slaves = 2
 DB_WRITER_PROCESSES = 2
 DB_CACHE_SIZE = 17825792
 session_cached_cursors=100
 timed_statistics = false;







--
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) 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: Performance Horrivel

2006-04-06 Por tôpico Sergio Leandro Ghellere
Ola Jemerson,

   é difícil achar encontrar um problema assim...
   só pra termos uma idéia, cola o resultado do AWR...
   executa no sqlplus.
   @$ORACLE_HOME/rdbms/admin/awrrpt.sql

pega aí um intervalo de algumas horas... normalmente o AWR colhe estatísticas a 
cada 
60min..

   cola as primeiras 100 linhas só pra termos uma idéia.


Grande abraço.


Sergio Leandro Ghellere
DBA Oracle
+55 (41) 9906-4813

On Thu Apr  6 15:19 , 'Phael' [EMAIL PROTECTED] sent:

Ola Jemerson,

Ja tive problemas com performance com AIX.
No meu caso o problema era com um parametro do SO.
Distrubuição da memória cache.

executa esse arquivo ai:

# /usjr/samples/kernel/vmtune

colo o resultado ai.

Raphael



- Original Message - 
From: Jemerson Dutra [EMAIL PROTECTED]
To: oracle_br@yahoogrupos.com.br
Sent: Thursday, April 06, 2006 2:35 PM
Subject: [oracle_br] Re: Performance Horrivel


Ae chiappa, da uma ajuda ai.
Jemerson
--- Em oracle_br@yahoogrupos.com.br, Jemerson Dutra 
escreveu

 Senhores, estamos com um servidor em producao que foi criado com
 alguns parametros default por causa de um ERP. Nos deparamos apos
35
 dias, que o servidor esta com uma performance horrivel. Gostaria da
 ajuda dos senhores, comentando/incluindo e ou alterando meu
init.ora.
 Servidor IBM AIX 5.2
 4GB RAM
 4GB SWAP
 2 CPUS DE 1.2GHZ
 ORACLE 10GB DE BANCO
 CRIADO BLOCK_SIZE 4096KB
 # initMFGPRO.ora - oracle instance parameter file
 # include database configuration parameters
 ifile = /Hdados2/admin/MFGPRO/config.MFGPRO
 open_cursors = 512
 # NLS Parameters
   NLS_LANGUAGE = AMERICAN
   NLS_TERRITORY = AMERICA
   NLS_NUMERIC_CHARACTERS = .,
 # tuning parameters
   db_files = 200
   db_file_multiblock_read_count = 32   # LARGE
 # --- Autor : Jemerson - Data: 20/02/2006
 # 
   shared_pool_size = 3  ## 4
 # 
 sort_area_size = 262144 ## 1048576  # LARGE
 sort_area_retained_size = 262144 ##
1048576
 # LARGE
 large_pool_size = 15500 #25000 #15500 ## 1  #
 80MIL   large_pool_size = 614400
 java_pool_size  = 20971520 ##1
 # 
   log_checkpoint_interval = 1
   processes = 450 #500 # 600  #
LARGE
   log_buffer = 2048000 # 1048576 # LARGE
   max_dump_file_size = 10240 # limit trace file size to 5M ea
   compatible=9.2.0
   UTL_FILE_DIR=*   # if you want to use SQL Loader
 optimizer_mode = CHOOSE
 # 
 # liberado em 19/09/2005
 CURSOR_SHARING = FORCE ##EXACT ##FORCE
 # 
 dispatchers=(PROTOCOL=TCP) (dispatchers=20)
 service_names= MFGPRO
 instance_name= MFGPRO
 # 
 # melhoria no servicos MTS 10/10/2005
 # Autor: Jemerson Dutra
 mts_max_servers=100
 mts_servers=40
 mts_max_dispatchers=40
 O7_DICTIONARY_ACCESSIBILITY=TRUE
 GLOBAL_NAMES = TRUE
 dml_locks = 3408# LARGE
 open_links = 4
 sort_multiblock_read_count = 4
 dbwr_io_slaves = 2
 DB_WRITER_PROCESSES = 2
 DB_CACHE_SIZE = 17825792
 session_cached_cursors=100
 timed_statistics = false;







--

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

[oracle_br] Re: Performance

2006-03-14 Por tôpico jlchiappa
** Provavelmente ** deve ter a ver com os params view-merge e com as 
estatísticas ou falta dela (algumas sub-queries podem ser processadas 
como se fossem views) - pra gente poder tentar reproduzir e dizer 
algo mais a respeito, nos diga : versão EXATA do banco, se for 9i ou 
superior o valor dos params _complex_view_merging , 
_project_view_columns e _push_join_union_view   , o texto do SQL e um 
script de criação das tabelas e de alguns dados (se vc puder mandar 
uma versão resumida disso mas onde ainda ocorra o comportamento, 
melhor ainda).

[]s

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

 
 
 Me desculpe a insistência. Mas me ajudem no por que da diferença de
 performance:
 
 Query lenta:
 
 Select tab1.campo1
 tab2.campo1
 From tab2,
 tab1
 Where tab1.data = to_date('data qualquer','dd/mm/')
 And tab2.campo1 = tab1.campo1;
 
 Query rápida:
 
 Select tab1.campo 1
 ,(Select tab2.campo1
 From tab2
 Where tab2.campo1 = tab1.campo1)
 From tab1
 Where tab1.data = to_date('data qualquer','dd/mm/');
 
 
 Grato,
 Genivaldo
 
  
 
 
 
  
 
 
 
 [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] Re: Performance com o Connect BY !!!

2006-01-17 Por tôpico zalbertos
Valeu pela dica Thiago.

Já vai ajudar.

Carlos Alberto
[EMAIL PROTECTED]

--- Em oracle_br@yahoogrupos.com.br, Thiago Lazzarotto 
[EMAIL PROTECTED] escreveu

 Faz assim:
 Select b.campos
  From (select a.campos from tabela a where a.campo = :x) b
 Connect by b.filho = prior b.pai
 
 Vc tem que colocar um subselect no from, pois o connect by é 
executado 
 antes do where...
 
 Thiago.
 
 zalbertos escreveu:
 
  Bom Dia Pessoal,
 
  Estou com um problema em um processo e o gargalo está na seguinte
  query :
 
  SELECT DTPAI.EFFECTIVITY_DATE,
 DTPAI.DISABLE_DATE  
FROM CUM.CUM_FRCT_BOM_EXPLOD DTPAI 
  WHERE ORGANIZATION_ID = :b1 
 AND SHOP_ORDER = :b2
  CONNECT BY DTPAI.PART_NUMBER_FILHO = PRIOR DTPAI.PART_NUMBER_PAI
 START WITH DTPAI.COMPONENT_SEQUENCE_ID = :b3 
 ORDER BY DTPAI.SORT_CODE DESC
 
  Estou com a liberdade para criar o melhor indice nessa tabela, já
  fiz algumas tentativas mas o gargalo continua acontecendo ... 
alguém
  tem alguma idéia do que pode ser feito para melhorar a 
performance
  dessa query, a versão do banco aqui é 8.1.7.3.
 
  Vejam as tentativas de indices que criei :
 
  Create Index Cum.Cum_Frct_Bom_Explod_idx2
on Cum.Cum_Frct_Bom_Explod (organization_id,
shop_order)
  /
 
  Create Index Cum.Cum_Frct_Bom_Explod_idx3
on Cum.Cum_Frct_Bom_Explod (component_sequence_id)
  /
 
  Create Index Cum.Cum_Frct_Bom_Explod_idx4
on Cum.Cum_Frct_Bom_Explod (part_number_pai)
  /
 
  Create Index Cum.Cum_Frct_Bom_Explod_idx5
on Cum.Cum_Frct_Bom_Explod (part_number_filho)
  /
 
  Desde já agradeço
 
  Obrigado.
 
  Carlos Alberto
  [EMAIL PROTECTED]
 
 
 
 
 
 
 
  -
-
  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
 
 
  -
---
  *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]
mailto:[EMAIL PROTECTED]
subject=Unsubscribe
 
  * O uso que você faz do Yahoo! Grupos está sujeito aos 
Termos do
Serviço do Yahoo! http://br.yahoo.com/info/utos.html.
 
 
 
 -- 
 
 
 Thiago Lazzarotto da Costa
 Database Administrator / TI Sistemas
 Áreas Atendidas: Tecnologia / Projetos Especiais
 STEMAC S/A GRUPOS GERADORES
 Fone: (51) 3358-3800 ramal 2711
 e-mail: [EMAIL PROTECTED]







--
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] Re: Performance Oracle x RM Labore

2005-12-09 Por tôpico thy_costa
Nós usamos o RM.

Banco 8.1.7.4.
SO: HP-UX
Funcionários da empresa? 1500
Eventos: 559
Tempo de cálculo: 40-45 minutos


--- Em oracle_br@yahoogrupos.com.br, Emerson Martins
[EMAIL PROTECTED] escreveu
 PessoALL,
 
  
 
 Alguém do grupo de discussão trabalha com o sistema de
folha de
 pagamento RMLabore da RM ?
 
  
 
 Se afirmativo, gostaria de obter algumas informações sobre o
 ambiente, exemplo:
 
  
 
 Versão do Oracle + patcheSet
 
 SO
 
 Número de funcionários
 
 Número de eventos cadastrados no RMLabore
 
 Tempo para calcula da Folha
 
  
 
 Qualquer informação será muito bem vinda.
 
  
 
 Obrigado.
 
  
 
 EMERSON
 
 
 
 
 
 [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