Caro chiappa, muito obrigado pelas explicações.

 

Vou ler todo o material que você referenciou e ver o melhor a ser feito de 
acordo com o padrão de programação do pessoal daqui.

 

Infelizmente o banco é liberado pra qualquer um fazer o que bem entender, 
então, já viu né? Mas aos poucos to mudando isso....

 

Mais uma vez, muito obrigado.

 

Grande abraço.


Carlos Martello.

 

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de jlchiappa
Enviada em: quarta-feira, 12 de novembro de 2008 10:33
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: RES: ORA-04030

 

Colega, pra mim o seu problema era (e é, ainda) o PARALLEL_MAX_SERVERS
muito alto (vc o setou para 10x o número de CPUs,
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:39946845137685#1171130000346589088
e o senso comum sugerem que uma CPU pode ter 2, 3, quatro tarefas
simultãneas, 10 me parece um exagero, inclusive) - aí, com o DOP na
tabela setado como DEFAULT e com um montão de servers permitidos o
banco devia estar abrindo muitas dezenas de parallel slaves, cada um
deles é uma nova sessão, esse monte de sessões devem estar consumindo
a RAM alocada - INCLUSIVE, apesar de (só pra variar) vc NÂO nos dar a
versão, vc diz que está usando PGA automática, é documentado que o
banco dá só 30% do param de PGA para os slaves (nota Subject:
Automatic PGA Memory Management in 9i and 10g, Doc ID: Note:223730.1
), com um monte de processos concorrendo pela memória, que é só uma
fração do que vc especificou, não é difícil dar erro de falta de
RAM.... Vc setando o DOP para um valor fixo na tabela resolveu a
questão PARA AQUELAS TABELAS, vc ainda corre risco para outras
operações paralelas em outras tabelas, em índices... Sugestão : bota o
PARALLEL_MAX_SERVERS prum valor mais razoável, OU sete o DOP para
TODAS as tabelas/índices que podem ser usadas em parallel (colocando 1
para aquelas que vc não quer), OU deixe todo mundo como DEGREE 1 (que
é não-paralelo) e acione via hint de PARALLEL o paralelismo apenas nos
SQLs em que vc o deseje, OU use o algoritmo de tunning de paralelismo
(parametro de automatic tunning), que aí ele controla o DOP de acordo
com o uso - veja lá o que é mais viável pra vc, no seu caso... 

[]s

Chiappa
--- Em oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> , 
"Carlos Eduardo P. Martello"
<[EMAIL PROTECTED]> escreveu
>
> Pessoal, bom dia....
> 
> 
> 
> Finalmente consegui resolver o problema que vem tirando meu sono
> (literalmente) já que os processos de carga rodam durante a madrugada.
> 
> 
> 
> Fiz as seguintes alterações:
> 
> 
> 
> Setei o parâmetro degree das tabelas de produção onde o valor era
DEFAULT
> para 8.
> 
> 
> 
> Além disso minha memória e o SPFILE ficaram assim:
> 
> 
> 
> Memória Instância Oracle:
> 
> Shared Pool = 768mb
> 
> Buffer cache = 1504mb
> 
> Large pool = 64mb
> 
> Java pool = 32mb
> 
> 
> 
> SPFILE:
> 
> *.audit_sys_operations=TRUE
> 
> *.audit_trail='TRUE'
> 
> *.background_dump_dest='F:\Oracle\admin\riprod27\bdump'
> 
> *.compatible='9.2.0.0.0'
> 
>
*.control_files='F:\Oracle\oradata\riprod27\control01.ctl','F:\Oracle\oradat
> a\riprod27\control02.ctl','F:\Oracle\oradata\riprod27\control03.ctl'
> 
> *.core_dump_dest='F:\Oracle\admin\riprod27\cdump'
> 
> *.cursor_space_for_time=FALSE
> 
> *.db_block_size=16384
> 
> *.db_cache_size=1572864000
> 
> *.db_domain=''
> 
> *.db_file_multiblock_read_count=64
> 
> *.db_name='riprod27'
> 
> *.db_writer_processes=0
> 
> *.dbwr_io_slaves=0
> 
> *.dispatchers='(PROTOCOL=TCP) (SERVICE=riprod27XDB)'
> 
> *.fast_start_mttr_target=300
> 
> *.hash_area_size=1048576
> 
> *.hash_join_enabled=TRUE
> 
> *.instance_name='riprod27'
> 
> *.java_pool_size=33554432
> 
> *.job_queue_processes=10
> 
> *.large_pool_size=67108864
> 
> *.log_checkpoint_timeout=0
> 
> *.max_dump_file_size='1048576'
> 
> *.open_cursors=300
> 
> *.parallel_automatic_tuning=FALSE
> 
> *.parallel_max_servers=80
> 
> *.parallel_threads_per_cpu=2
> 
> *.pga_aggregate_target = 536870912
> 
> *.processes=300
> 
> *.query_rewrite_enabled='FALSE'
> 
> *.remote_login_passwordfile='EXCLUSIVE'
> 
> *.session_max_open_files=20
> 
> *.sga_max_size=3221225472
> 
> *.shared_pool_size=805306368
> 
> *.sort_area_size=1048576
> 
> *.sql_trace=FALSE
> 
> *.star_transformation_enabled='FALSE'
> 
> *.timed_statistics=TRUE
> 
> *.undo_management='AUTO'
> 
> *.undo_retention=10800
> 
> *.undo_tablespace='UNDOTBS1'
> 
> *.user_dump_dest='F:\Oracle\admin\riprod27\udump'
> 
> 
> 
> Assim fica documentado e caso alguém sofra com esse "mal", podem ter
algumas
> idéias de como resolver o problema RS.
> 
> 
> 
> Abraços a todos.
> 
> 
> 
> De: Carlos martello 
> Enviada em: terça-feira, 11 de novembro de 2008 15:05
> Para: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> 
> Assunto: ORA-04030
> Prioridade: Alta
> 
> 
> 
> Boa tarde a todos.
> 
> 
> 
> Pessoal, essa é minha primeira participação na lista e gostaria de
uma ajuda
> se possível.
> 
> 
> 
> Tenho uns processos de carga que rodam durante a madrugada e em
paralelo.
> 
> 
> 
> Processo A - começa as 20:30
> 
> Processo B - começa as 22:00
> 
> Processo C - começa as 06:00
> 
> 
> 
> Quando os processos A e B entram em paralelo, 99% das vezes recebo
erros do
> tipo ORA-04030.
> 
> 
> 
> Já li bastante material, já pesquisei no histórico da própria lista, no
> metalink do Oracle e ainda não consegui resolver o problema.
> 
> 
> 
> Vou passar alguns dados e talvez assim possam me ajudar:
> 
> 
> 
> Servidor:
> 
> WINDOWS 2003 Server 64-bit
> 
> 8 processadores
> 
> 8 GB RAM
> 
> 
> 
> Memória Instância Oracle:
> 
> Shared Pool = 768mb
> 
> Buffer cache = 1504mb
> 
> Large pool = 160mb
> 
> Java pool = 32mb
> 
> 
> 
> SPFILE:
> 
> *.db_block_size=16384
> 
> *.db_cache_size=1572864000
> 
> *.db_domain=''
> 
> *.db_file_multiblock_read_count=64
> 
> *.db_name='riprod27'
> 
> *.db_writer_processes=0
> 
> *.dbwr_io_slaves=0
> 
> *.dispatchers='(PROTOCOL=TCP) (SERVICE=riprod27XDB)'
> 
> *.fast_start_mttr_target=300
> 
> *.hash_area_size=1048576
> 
> *.hash_join_enabled=TRUE
> 
> *.instance_name='riprod27'
> 
> *.java_pool_size=33554432
> 
> *.job_queue_processes=10
> 
> *.large_pool_size=167772160
> 
> *.log_checkpoint_timeout=0
> 
> *.max_dump_file_size='1048576'
> 
> *.open_cursors=300
> 
> *.parallel_automatic_tuning=FALSE
> 
> *.parallel_max_servers=80
> 
> *.parallel_threads_per_cpu=2
> 
> *.pga_aggregate_target = 805306368
> 
> *.processes=300
> 
> *.query_rewrite_enabled='FALSE'
> 
> *.remote_login_passwordfile='EXCLUSIVE'
> 
> *.session_max_open_files=20
> 
> *.sga_max_size=3221225472
> 
> *.shared_pool_size=805306368
> 
> *.sort_area_size=1048576
> 
> *.sql_trace=FALSE
> 
> *.star_transformation_enabled='FALSE'
> 
> *.timed_statistics=TRUE
> 
> *.undo_management='AUTO'
> 
> *.undo_retention=10800
> 
> *.undo_tablespace='UNDOTBS1'
> 
> *.user_dump_dest='F:\Oracle\admin\riprod27\udump'
> 
> 
> 
> 
> 
> Atenciosamente,
> 
> 
> 
> Carlos Martello.
> 
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>

 



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

Responder a