Colega, algumas dicas aí que talvez possam te ajudar, uns pontos a vc pensar :
OK, vc em algum momento o uso de CPU chegou a 100%, ** mas ** : a. isso foi só por pouco tempo e logo normalizou, ** OU ** há jobs mantendo a CPU em 100% em LONGO período ???? veja vc, se é só um pico, e é muito rápido PORTANTO o wait experimentado pelas outras sessões que querem CPU também é ** mínimo ** , então tá tudo bem, isso NÃO É o teu problema b. falando em problema, na hora de tunning vc *** NUNCA ***, *** NUNCA *** , *** NUNCA *** pode querer olhar o consumo GERAL de um recurso (CPU ou o que for) e achar que ESSE é o seu problema principal - blz, vc até pode estar enfrentando consumo de CPU, ** MAS QUEM ** te garante que não há outros consumos MAIS IMPORTANTES, influenciando negativamente a sua performance ???? Além do que, vc NÂO É pago pra "fazer a máquina de modo geral" ficar rápida, mas SIM pra que os processos X, Y e Z importantes pro negócio fiquem rápidos, yes ? Assim, não importa se está consumindo a ou b % de CPU, avctem mais é que analisar ** os processos X, Y e Z importantes pro negócio **, se eles não estão sofrendo agudamente de falta de CPu ** , se o wait principal e mais importante é por I/O ou SQL malfeito não faz sentido algum ** vc querer se preocupar com CPU, nesse cso vc só estará PERDENDO TEMPO E ESFORÇO... c. "parametros do oracle para ele usar mais a memoria, liberando assim a cpu" : não, colega, essa conclusão ** NÂO ** faz grande sendo - veja vc, como conceituado na documentação Oracle e citado em asktom.oracle.com (http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:3675961676045#3700941615686 e http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:6108562636780#22096174581267 sendo dois exemplos), aonde o banco Oracle gasta CPU ** principalmente ** é fazendo PARSEs e esperando por LATCHEs : ORA, ambas as operações ** jÁ OCORREM ** na memória, LATCHEs são espera por posições de memória internas, e PARSEs é "compilação de SQLs", que TAMBÉM ocorrem na memória, na SQL area especificamente, exatamente AONDE que vc acha que o "Oracle pode usar mais memória" ??? OUTRA COISA, a utilização de memória por parte do bd Oracle é PRINCIPALMENTE nos seus caches (de dados, de SQL, de objetos internos) e nos buffers internos dele (como redo log buffer e quetais), como esses recursos são COMPARTILHADOs por várias sessões (o banco é multi-usuário!!), necessariamente CADA sessão que acessa uma área de RAM TEM QUE a bloquear rapidamente e temporariamente (com os LATCHEs), óbvio que isso é feito VIA CONSUMO DE CPU , então "fzer o Oracle consumir mais RAM" pode é ** AUMENTAR ** o teu consumo de CPU, ok ? A parte do "liberando assim ... e o acesso aos discos." até tem um pouco a ver, já que um I/O físico é feito via call do sistema operacional, claro que gasta um pouco de CPU, mas isso ** não é ** de forma alguma altamete significativo. vamos pensar juntos, pra fazer um I/O físico exatamente ** O QUE ** a CPU tem que ficar controlando ??? Bem pouco, faça um trace dum programa, confirme isso. E faz sentido, afinal disco e controladoras são mais lentas E não precisam ficar sendo "pageadas" passo a passo pela CPU, há rotinas built-in pra isso num SO... ===>> então a minha resposta pra vc é : 1. vc NUNCA faz uma única medida, mas sim várias e várias, seja de cPU, seja do que for 2. localize e analise as tarefas IMPORTANTES pro negócio e veja se elas estão tendo porcentagem significativa de waits altos por CPU, somente se isso for verdade, JUNTO com a informação vinda de 1. , aí SIM vc comprova que cpu é um problema 3. consumo de CPU ** não tem a ver ** com qtdade de utiliação de RAM, se vc provou que CPU é um problema, como eu disse acima o banco gasta CPU procesando SQLs e/ou acessando RAM e/ou esperando por bloqueios rápidos(latches), então o que vc tem que fazer é pedir MENOS acessos , MENOS SQLs, SQL mais eficientes, é isso. 4. não tem a ver com o seu problema, ** MAS ** lembro que : -> se o seu SO e hardware é de 32 bits, vc NÂO CONSEGUIRÁ acessar os 3 Gbs todos sem aquela LONGA série de traquitanas tipo /PAE , /3G e quejandos similares -> DE FORMA ALGUMA vc desejará dar toda a RAM da máquina pra ao banco Oracle, ** POIS ** como nós sabemos a CADA SESSÂO que se conecta (em modo direto, que é o default) o banco VAI criar um novo processo shadow, que VAI consumir RAM, vc TEM QUE deixar RAM suficiente pra isso, ok ? Como regra de dedão, tem gente que deixa 50% reservado pras conexões, tem gente que deixa 60%, mas isso é fato, vc TEM QUE deixar alguma reserva, ok ? []s Chiappa --- Em oracle_br@yahoogrupos.com.br, "cegoncalvesvr" <[EMAIL PROTECTED]> escreveu > > Amigos, > > O meu banco esta com 03 Gb de RAM, Processador 2.8Ghz (pentium IV) e > 02 hds de 140GB (Sata). > Notei que a cpu as vezes chega a 100%, e a memoria fica e, 1.6 Gb de > uso. > Alguem poderia me ajudar a melhorar a perfomance, alterando aluns > parametros do oracle para ele usar mais a memoria, liberando assim a > cpu e o acesso aos discos. > > Abs. > Obrigado. >