- Este tópico contém 27 respostas, 5 vozes e foi atualizado pela última vez 14 anos, 8 meses atrás por
leandrolbs.
-
AutorPosts
-
1 de abril de 2011 às 9:50 pm #98749
leandrolbs
Participanteerro voltou…
1 de abril de 2011 às 9:54 pm #98750felipeg
ParticipanteÉ, aparentemente o teu servidor não da conta de alocar o que você configurou.
Se tiver disponibilidade aumente gradativamente os parâmetros de memória e veja como o banco se comporta.
De qualquer forma as alterações descritas acima já irão melhorar em muito a situação.
Lembre-se de sempre executar a coleta de estatísticas.
Qualquer nova situação é só avisar.
Atenciosamente,
Felipe Romeu Gregolewitsch.1 de abril de 2011 às 11:16 pm #98751leandrolbs
Participantediminui o SGA, acho que vou colocar 64bits…
Felipe muito obrigado pela ajuda e dica.
2 de abril de 2011 às 12:07 am #98752vieri
ParticipanteDesculpem a intromisão mas não consegui ver nada de consistente até agora.
Chutometro não é Diagnostic Tunning.Vamos lá…
SGA de 500MB não é um problema. 65 usuários simultaneos não é muito.
Outro ponto é que a Wait não foi identificada.
Os usuários que estão lentos é por espera por bloqueio,latch,cpu, I/O ?
Como está o consumo de i/o e cpu no servidor?
é linux ou windows?
Tem E.M instalado?
Qtos CPU possui, Qto de RAM ?No momento que a lentidão for identificada, rode os seguintes scripts:
SELECT substr(DECODE(request,0,’Holder: ‘,’Waiter: ‘)||sid,1,12) sess,
id1, id2, lmode, request, type, inst_id
FROM GV$LOCK
WHERE (id1, id2, type) IN
(SELECT id1, id2, type FROM GV$LOCK WHERE request>0)
ORDER BY id1, request;SET LINESIZE 200
COLUMN sid FORMAT 9999
COLUMN serial# FORMAT 9999999
COLUMN machine FORMAT A30
COLUMN progress_pct FORMAT 99999999.00
COLUMN elapsed FORMAT A10
COLUMN remaining FORMAT A10SELECT s.inst_id,
s.sid,
s.serial#,
s.username,s.osuser,
s.module,
ROUND(sl.elapsed_seconds/60) || ‘:’ || MOD(sl.elapsed_seconds,60) elapsed,
ROUND(sl.time_remaining/60) || ‘:’ || MOD(sl.time_remaining,60) remaining,
ROUND(sl.sofar/sl.totalwork*100, 2) progress_pct
FROM gv$session s,
gv$session_longops sl
WHERE s.sid = sl.sid
AND s.inst_id = sl.inst_id
AND s.serial# = sl.serial#;Select p.spid, p.addr, s.sid, s.serial#, s.username, s.osuser, s.status, s.server, s.logon_time, s.sql_hash_value, TO_CHAR (s.last_call_et / 3600, ‘009.99’) inatividade, s.machine, s.program, p.pga_used_mem, p.pga_alloc_mem, p.pga_freeable_mem, pga_max_mem, sql.sql_text
From v$session s, v$process p, v$sql sql
Where s.username is not null
And s.paddr = p.addr (+)
And s.sql_address = sql.address
and s.machine=’depdata01′
Order by s.last_call_et desc;
*substitui o machine pela máquina que estiver lenta.SET LINESIZE 200
COLUMN username FORMAT A20
COLUMN module FORMAT A20
COLUMN osuser FORMAT A10SELECT a.osuser,a.status,a.inst_id,
NVL(a.username,'(oracle)’) AS username,
a.module,
a.program,
trunc(b.value/1024) AS memory_kb
FROM gv$session a,
gv$sesstat b,
gv$statname c
WHERE a.sid = b.sid
AND a.inst_id = b.inst_id
AND b.statistic# = c.statistic#
AND b.inst_id = c.inst_id
AND c.name = ‘session pga memory’
AND a.program IS NOT NULL
ORDER BY b.value DESC;SET LINESIZE 200
SET PAGESIZE 1000COLUMN username FORMAT A20
COLUMN event FORMAT A30
COLUMN wait_class FORMAT A15SELECT s.inst_id,
NVL(s.username, ‘(oracle)’) AS username,
s.sid,
s.serial#,
sw.event,
sw.wait_class,
sw.wait_time,
sw.seconds_in_wait,
sw.state
FROM gv$session_wait sw,
gv$session s
WHERE s.sid = sw.sid
AND s.inst_id = sw.inst_id and sw.event not in (‘SQL*Net message from client’)
ORDER BY sw.seconds_in_wait asc;SELECT h.event
,h.wait_class
,count(*) total
,sum(h.wait_time + h.time_waited)/1000000 total_wait_time
FROM
gv$active_session_history h,
v$event_name e
WHERE h.sample_time BETWEEN sysdate – (1/24) AND sysdate
AND h.event_id = e.event_id
GROUP BY h.event, h.wait_class
ORDER BY total_wait_time DESC;Para uma análise inicial é o suficiente.
Não adianta querer ajudar os colegas na base do chute, aumentar SGA, coletar statistica, etc..etc.. isso ai já é para está redondo antes mesmo do servidor entrar em produção e acredito que já era pra ter sido feito antes mesmo de ser postado no forún.Digo isso como dica, para quando for em um cliente nunca dizer que o problema dele é isso, pois vc estará chamando o ambiente dele de
lixão, dektop de usuário…Acredito que estamos com problemas de bloqueio(row lock contention) ,
ou de Latch (disputa por recurso de fila na SGA), recurso físico mesmo no S.O.
mas estou “chutando” pois não vi o resultado dos scripts.
Se for linux também rode um TOP e um SAR 1 10.
Se for windows pode ser o Task manager.abraços,
e bom FDS!2 de abril de 2011 às 12:24 am #98753leandrolbs
ParticipanteOlá,
1º Select = 0 rows.
e o resto:
Connected to Oracle Database 10g Release 10.2.0.1.0
Connected as jrSQL>
SQL> SET LINESIZE 200
SQL> COLUMN sid FORMAT 9999
SQL> COLUMN serial# FORMAT 9999999
SQL> COLUMN machine FORMAT A30
SQL> COLUMN progress_pct FORMAT 99999999.00
SQL> COLUMN elapsed FORMAT A10
SQL> COLUMN remaining FORMAT A10
SQL> SELECT s.inst_id,
2 s.sid,
3 s.serial#,
4 s.username,s.osuser,
5 s.module,
6 ROUND(sl.elapsed_seconds/60) || ':' || MOD(sl.elapsed_seconds,60) elapsed,
7 ROUND(sl.time_remaining/60) || ':' || MOD(sl.time_remaining,60) remaining,
8 ROUND(sl.sofar/sl.totalwork*100, 2) progress_pct
9 FROM gv$session s,
10 gv$session_longops sl
11 WHERE s.sid = sl.sid
12 AND s.inst_id = sl.inst_id
13 AND s.serial# = sl.serial#;INST_ID SID SERIAL# USERNAME OSUSER MODULE ELAPSED REMAINING PROGRESS_PCT
1 232 778 ELZA elza Pos_Carteira_venc.exe 0:9 0:0 100 1 198 57 MARISA marisa RelResumoFolha.exe 0:18 0:0 100SQL> SET LINESIZE 200
SQL> COLUMN username FORMAT A20
SQL> COLUMN module FORMAT A20
SQL> COLUMN osuser FORMAT A10
SQL> SELECT a.osuser,a.status,a.inst_id,
2 NVL(a.username,'(oracle)') AS username,
3 a.module,
4 a.program,
5 trunc(b.value/1024) AS memory_kb
6 FROM gv$session a,
7 gv$sesstat b,
8 gv$statname c
9 WHERE a.sid = b.sid
10 AND a.inst_id = b.inst_id
11 AND b.statistic# = c.statistic#
12 AND b.inst_id = c.inst_id
13 AND c.name = 'session pga memory'
14 AND a.program IS NOT NULL
15 ORDER BY b.value DESC;OSUSER STATUS INST_ID USERNAME MODULE PROGRAM MEMORY_KB
SYSTEM ACTIVE 1 (oracle) ORACLE.EXE (LGWR) 4791
caetaninho INACTIVE 1 CAETANINHOPETRELLA PedidoVendaTS.exe PedidoVendaTS.exe 3255
petrellaLoja2 INACTIVE 1 MARCELA NotaFiscalSaidaComPe NotaFiscalSaidaComPedido.exe 3063
dido.exeLoja2 INACTIVE 1 MARCELA PedidoVendaLoja.exe PedidoVendaLoja.exe 2231
Loja2 INACTIVE 1 MARCELA PedidoVendaLoja.exe PedidoVendaLoja.exe 2039
INACTIVE 1 SYSMAN OEM.SystemPool OMS 2022
SYSTEM ACTIVE 1 (oracle) ORACLE.EXE (DBW0) 1935
vagner INACTIVE 1 VAGNER FPG_CalculoFolha.exe FPG_CalculoFolha.exe 1911
NT AUTHORI INACTIVE 1 DBSNMP emagent.exe emagent.exe 1911
TYSYSTEMalessandro INACTIVE 1 SAN Estoque_Disponivel.e Estoque_Disponivel.exe 1783
san xeALANBUENO INACTIVE 1 ALANBUENO PedidoVendaTS.exe PedidoVendaTS.exe 1719
INACTIVE 1 SYSMAN OEM.SystemPool OMS 1719
Loja2 INACTIVE 1 MARCELA NotaFiscalEletronica NotaFiscalEletronica.exe 1719
.exeelza INACTIVE 1 ELZA Miner_Geral_Financei Miner_Geral_Financeiro.exe 1655
ro.exeedilene INACTIVE 1 EDILENE AnaliseCliente.exe AnaliseCliente.exe 1591
producao1 INACTIVE 1 EXPEDICAO ConsistenciaRotulo.e ConsistenciaRotulo.exe 1591
xeSERVER3le ACTIVE 1 JR PL/SQL Developer PlSqlDev.exe 1527
andro_jrtiLOJA INACTIVE 1 MONIQUE MovEstoquePA.exe MovEstoquePA.exe 1527
SERVER3le INACTIVE 1 JR PL/SQL Developer PlSqlDev.exe 1527
andro_jrtiACTIVE 1 SYSMAN OEM.SystemPool OMS 1463OSUSER STATUS INST_ID USERNAME MODULE PROGRAM MEMORY_KB
edilene INACTIVE 1 EDILENE AnaliseCliente.exe AnaliseCliente.exe 1463
SYSTEM ACTIVE 1 (oracle) ORACLE.EXE (MMON) 1455
franciscop INACTIVE 1 FRANCISCOPOMPEU PedidoVendaTS.exe PedidoVendaTS.exe 1335
ompeumarisa INACTIVE 1 MARISA RelResumoFolha.exe RelResumoFolha.exe 1318
edilene INACTIVE 1 EDILENE AprovCredito.exe AprovCredito.exe 1271
ALEXANDRES INACTIVE 1 SILMARAANDREATTI PedidoVendaTS.exe PedidoVendaTS.exe 1271
ILMARALoja2 INACTIVE 1 MARCELA Empresa.exe Empresa.exe 1271
LOJA INACTIVE 1 MONIQUE MovEstoquePA.exe MovEstoquePA.exe 1207
laila INACTIVE 1 LAILA RecPagto.exe RecPagto.exe 1207
leandro INACTIVE 1 ALESSANDROPCP plano.exe plano.exe 1207
EDOARDOADR INACTIVE 1 EDOARDOADRIANA PedidoVendaTS.exe PedidoVendaTS.exe 1143
IANAlaila INACTIVE 1 LAILA ReciboRecisao.exe ReciboRecisao.exe 1143
NT AUTHORI ACTIVE 1 DBSNMP emagent.exe emagent.exe 1143
TYSYSTEMSYSTEM ACTIVE 1 (oracle) ORACLE.EXE (CJQ0) 1087
laila INACTIVE 1 LAILA Funcionarios.exe Funcionarios.exe 1079
alessandra INACTIVE 1 ALESSANDRACARBONEZI Funcionarios.exe Funcionarios.exe 1015
carbonezicleversonh INACTIVE 1 CLEVERSONHUDSON PedidoVendaTS.exe PedidoVendaTS.exe 1015
udsonSYSTEM ACTIVE 1 (oracle) ORACLE.EXE (J008) 1015
SYSTEM ACTIVE 1 (oracle) ORACLE.EXE (q000) 1015
alessandro INACTIVE 1 SAN ModPCP.exe ModPCP.exe 951
sanvagner INACTIVE 1 VAGNER Movimentos.exe Movimentos.exe 951
OSUSER STATUS INST_ID USERNAME MODULE PROGRAM MEMORY_KB
laila INACTIVE 1 LAILA ModPCP.exe ModPCP.exe 951
vagner INACTIVE 1 VAGNER ModPCP.exe ModPCP.exe 951
alessandro INACTIVE 1 SAN Pedido_Compra.exe Pedido_Compra.exe 951
sanedilene ACTIVE 1 EDILENE AprovCredito.exe AprovCredito.exe 951
ELAINE INACTIVE 1 ELAINE ModPCP.exe ModPCP.exe 951
clementina INACTIVE 1 CLEMENTINA ModPCP.exe ModPCP.exe 951
marisa INACTIVE 1 MARISA ModPCP.exe ModPCP.exe 887
EDOARDOADR INACTIVE 1 EDOARDOADRIANA MenuTS.exe MenuTS.exe 887
IANAclementina INACTIVE 1 CLEMENTINA Funcionarios.exe Funcionarios.exe 887
SYSTEM ACTIVE 1 (oracle) ORACLE.EXE (J005) 887
franciscop INACTIVE 1 FRANCISCOPOMPEU MenuTS.exe MenuTS.exe 887
ompeuSYSTEM ACTIVE 1 (oracle) ORACLE.EXE (J002) 887
SYSTEM ACTIVE 1 (oracle) ORACLE.EXE (J004) 887
edilene INACTIVE 1 EDILENE ModPCP.exe ModPCP.exe 887
cleversonh INACTIVE 1 CLEVERSONHUDSON MenuTS.exe MenuTS.exe 887
udsonSYSTEM ACTIVE 1 (oracle) ORACLE.EXE (J003) 887
reginaldon INACTIVE 1 REGINALDONETO MenuTS.exe MenuTS.exe 887
etoSERVER3le INACTIVE 1 JR PL/SQL Developer PlSqlDev.exe 823
andro_jrtileandro INACTIVE 1 ALESSANDROPCP ModPCP.exe ModPCP.exe 823
edilene INACTIVE 1 EDILENE AnaliseCliente.exe AnaliseCliente.exe 823
LOJA INACTIVE 1 MONIQUE Empresa.exe Empresa.exe 823OSUSER STATUS INST_ID USERNAME MODULE PROGRAM MEMORY_KB
Loja2 INACTIVE 1 MARCELA CabTabPreco.exe CabTabPreco.exe 823
elza INACTIVE 1 ELZA Pos_Carteira_venc.ex Pos_Carteira_venc.exe 823
eproducao1 INACTIVE 1 EXPEDICAO ModPCP.exe ModPCP.exe 823
ALANBUENO INACTIVE 1 ALANBUENO MenuTS.exe MenuTS.exe 823
alessandra INACTIVE 1 ALESSANDRACARBONEZI ModPCP.exe ModPCP.exe 823
carboneziSYSTEM ACTIVE 1 (oracle) ORACLE.EXE (J001) 823
cleversonh INACTIVE 1 CLEVERSONHUDSON PedidoVendaTS.exe PedidoVendaTS.exe 759
udsonSYSTEM ACTIVE 1 (oracle) ORACLE.EXE (SMON) 759
LOJA INACTIVE 1 MONIQUE NotaFiscalSaidaComPe NotaFiscalSaidaComPedido.exe 695
dido.exeluizcarlos INACTIVE 1 LUIZCARLOS ModPCP.exe ModPCP.exe 695
SILMARAAND INACTIVE 1 SILMARAANDREATTI MenuTS.exe MenuTS.exe 631
REATTISYSTEM ACTIVE 1 (oracle) ORACLE.EXE (J000) 631
Loja2 INACTIVE 1 MARCELA ModPCP.exe ModPCP.exe 631
SYSTEM ACTIVE 1 (oracle) ORACLE.EXE (RECO) 631
SYSTEM ACTIVE 1 (oracle) ORACLE.EXE (J006) 631
LOJA INACTIVE 1 MONIQUE Entrada_ProdAcab_Doc Entrada_ProdAcab_Docto.exe 631
to.exeLOJA INACTIVE 1 MONIQUE PedidoVendaLoja.exe PedidoVendaLoja.exe 567
caetaninho INACTIVE 1 CAETANINHOPETRELLA MenuTS.exe MenuTS.exe 567
petrellaEDOARDOADR INACTIVE 1 EDOARDOADRIANA PedidoVendaTS.exe PedidoVendaTS.exe 567
IANALOJA INACTIVE 1 MONIQUE Empresa.exe Empresa.exe 567
caetaninho INACTIVE 1 CAETANINHOPETRELLA PedidoVendaTS.exe PedidoVendaTS.exe 567
petrellaOSUSER STATUS INST_ID USERNAME MODULE PROGRAM MEMORY_KB
ALANBUENO INACTIVE 1 ALANBUENO PedidoVendaTS.exe PedidoVendaTS.exe 567
Loja2 INACTIVE 1 MARCELA Empresa.exe Empresa.exe 567
reginaldon INACTIVE 1 REGINALDONETO Miner_Pedido.exe Miner_Pedido.exe 567
etofranciscop INACTIVE 1 FRANCISCOPOMPEU PedidoVendaTS.exe PedidoVendaTS.exe 567
ompeureginaldon INACTIVE 1 REGINALDONETO Miner_Pedido.exe Miner_Pedido.exe 567
etoAMANDA INACTIVE 1 AMANDA ModPCP.exe ModPCP.exe 567
elza INACTIVE 1 ELZA ModPCP.exe ModPCP.exe 567
SYSTEM ACTIVE 1 (oracle) ORACLE.EXE (J007) 567
ALEXANDRES INACTIVE 1 SILMARAANDREATTI MenuTS.exe MenuTS.exe 567
ILMARALOJA INACTIVE 1 MONIQUE ModPCP.exe ModPCP.exe 567
edilene INACTIVE 1 EDILENE AnaliseCliente.exe AnaliseCliente.exe 503
INACTIVE 1 SYSMAN OMS OMS 503
SYSTEM ACTIVE 1 (oracle) ORACLE.EXE (J009) 503
INACTIVE 1 SYSMAN OMS OMS 503
ALEXANDRES INACTIVE 1 SILMARAANDREATTI PedidoVendaTS.exe PedidoVendaTS.exe 503
ILMARASYSTEM ACTIVE 1 (oracle) ORACLE.EXE (MMNL) 439
SYSTEM ACTIVE 1 (oracle) ORACLE.EXE (CKPT) 382
SYSTEM ACTIVE 1 (oracle) ORACLE.EXE (PMON) 311
SYSTEM ACTIVE 1 (oracle) ORACLE.EXE (MMAN) 311
SYSTEM ACTIVE 1 (oracle) ORACLE.EXE (PSP0) 311
SYSTEM ACTIVE 1 (oracle) ORACLE.EXE (QMNC) 311OSUSER STATUS INST_ID USERNAME MODULE PROGRAM MEMORY_KB
SYSTEM ACTIVE 1 (oracle) ORACLE.EXE (q001) 311
105 rows selected
SQL> SET LINESIZE 200
SQL> SET PAGESIZE 1000
SQL> COLUMN username FORMAT A20
SQL> COLUMN event FORMAT A30
SQL> COLUMN wait_class FORMAT A15
SQL> SELECT s.inst_id,
2 NVL(s.username, '(oracle)') AS username,
3 s.sid,
4 s.serial#,
5 sw.event,
6 sw.wait_class,
7 sw.wait_time,
8 sw.seconds_in_wait,
9 sw.state
10 FROM gv$session_wait sw,
11 gv$session s
12 WHERE s.sid = sw.sid
13 AND s.inst_id = sw.inst_id and sw.event not in ('SQL*Net message from client')
14 ORDER BY sw.seconds_in_wait asc;INST_ID USERNAME SID SERIAL# EVENT WAIT_CLASS WAIT_TIME SECONDS_IN_WAIT STATE
1 EDILENE 71 2185 db file sequential read User I/O 0 0 WAITING 1 (oracle) 277 1 rdbms ipc message Idle 0 0 WAITING 1 (oracle) 276 1 rdbms ipc message Idle 0 0 WAITING 1 (oracle) 275 1 rdbms ipc message Idle 0 3 WAITING 1 DBSNMP 262 51 Streams AQ: waiting for messag Idle 0 5 WAITING es in the queue 1 (oracle) 114 549 jobq slave wait Idle 0 7 WAITING 1 SYSMAN 254 6 wait for unread message on bro Idle 0 15 WAITING adcast channel 1 (oracle) 271 1 rdbms ipc message Idle 0 30 WAITING 1 (oracle) 278 1 rdbms ipc message Idle 0 30 WAITING 1 (oracle) 62 711 jobq slave wait Idle 0 31 WAITING 1 (oracle) 82 984 jobq slave wait Idle 0 32 WAITING 1 (oracle) 129 327 jobq slave wait Idle 0 32 WAITING 1 (oracle) 111 716 jobq slave wait Idle 0 32 WAITING 1 (oracle) 100 793 jobq slave wait Idle 0 32 WAITING 1 (oracle) 223 633 jobq slave wait Idle 0 37 WAITING 1 (oracle) 208 276 jobq slave wait Idle 0 65 WAITING 1 (oracle) 138 75 jobq slave wait Idle 0 67 WAITING 1 (oracle) 149 176 jobq slave wait Idle 0 134 WAITING 1 (oracle) 272 1 rdbms ipc message Idle 0 188 WAITING 1 (oracle) 274 1 smon timer Idle 0 315 WAITING 1 (oracle) 280 1 pmon timer Idle 0 469 WAITING 1 (oracle) 279 1 rdbms ipc message Idle 0 1213 WAITING 1 (oracle) 273 1 rdbms ipc message Idle 0 1409 WAITING 1 (oracle) 270 1 rdbms ipc message Idle 0 2273 WAITING 1 (oracle) 256 4 Streams AQ: waiting for time m Idle 0 3611 WAITING anagement or cleanup tasks 1 (oracle) 250 38 Streams AQ: qmn slave idle wai Idle 0 5044 WAITING t 1 (oracle) 265 1 Streams AQ: qmn coordinator id Idle 0 5044 WAITING le wait27 rows selected
SQL> SELECT h.event
2 ,h.wait_class
3 ,count(*) total
4 ,sum(h.wait_time + h.time_waited)/1000000 total_wait_time
5 FROM
6 gv$active_session_history h,
7 v$event_name e
8 WHERE h.sample_time BETWEEN sysdate - (1/24) AND sysdate
9 AND h.event_id = e.event_id
10 GROUP BY h.event, h.wait_class
11 ORDER BY total_wait_time DESC;EVENT WAIT_CLASS TOTAL TOTAL_WAIT_TIME
db file sequential read User I/O 2099 87.188512
enq: TM - contention Application 43 42.796171
log file switch (checkpoint in Configuration 50 38.859854
complete)log file parallel write System I/O 241 34.37354
db file scattered read User I/O 632 29.551245
log file sync Commit 262 25.384334
control file parallel write System I/O 65 17.543877
log file switch completion Configuration 19 12.021062
buffer busy waits Concurrency 9 5.646401
db file parallel write System I/O 135 4.547604
latch: enqueue hash chains Other 3 3.334483
log buffer space Configuration 4 2.522565
log file sequential read System I/O 2 1.901553
kksfbc child completion Other 80 1.819761
db file parallel read User I/O 31 1.414713
enq: CF - contention Other 2 1.257112
direct path read User I/O 8 0.655086
control file sequential read System I/O 6 0.207457
direct path write User I/O 2 0.161346
os thread startup Concurrency 2 0.156018
read by other session User I/O 7 0.114254
library cache pin Concurrency 9 0.03606
direct path write temp User I/O 1 0.034761
direct path read temp User I/O 1 0.012068
log file single write System I/O 1 0.007393
SQL*Net more data to client Network 1 0.000706
latch: shared pool Concurrency 1 0.000113
library cache load lock Concurrency 2 0
null event Other 11 029 rows selected
SQL>
2 de abril de 2011 às 12:36 am #98754vieri
Participanteantes de te dizer qualquer coisa.. me responde se vc rodou quando os usuários estavam reclamando de lentidão.. ou num momento qualquer ?
2 de abril de 2011 às 2:51 am #98755leandrolbs
Participanteestou com problemas de lentidão a 5 dias, dps dos processos de hj melhorou 5%… mas rodei em um momento critico de fechamento fiscal e da folha.
4 de abril de 2011 às 4:47 pm #98759VitorLeandro
ParticipanteOlá pessoal,
Concordo que o tamanho do Redo está muito pequeno e o mesmo deve ser aumentado e multiplexado. (isto realmente deve ser feito antes de qualquer outro parametro, na minha opnião). Coleta de estatísticas tembem precisa ser feita se estiver atrasada. Na dba_tables e dba_indexes existem o campo last_analyzed que mostra a ultima estatística coletada.
Mas se esta lentidão está ocorrendo a 5 dias, provavelmente é algo que mudou, pois todas as cituações abordadas, a instancia ficaria lenta gradativamente.
Eu gosto muito de utilizar o Enterprise Manager para verificar o que está ocorrendo em tempo real, com certeza você encontrará agumas querys que estão matando seu banco.
Encontre estas querys, verifique o plano ou até mesmo use o Tunning Adivisor.
4 de abril de 2011 às 6:11 pm #98762fabiommiranda
ParticipanteComo faz para exibir este script ?
DECLARE
libcac number(10,2);
rowcac number(10,2);
bufcac number(10,2);
redlog number(10,2);
spsize number;
blkbuf number;
logbuf number;
total number;
BEGIN
select value into redlog from v$sysstat
where name = ‘redo log space requests’;
select 100(sum(pins)-sum(reloads))/sum(pins) into libcac from v$librarycache;
select 100(sum(gets)-sum(getmisses))/sum(gets) into rowcac from v$rowcache;
select 100*(cur.value + con.value – phys.value)/(cur.value + con.value) into bufcac
from v$sysstat cur,v$sysstat con,v$sysstat phys,v$statname ncu,v$statname nco,v$statname nph
where cur.statistic# = ncu.statistic#
and ncu.name = ‘db block gets’
and con.statistic# = nco.statistic#
and nco.name = ‘consistent gets’
and phys.statistic# = nph.statistic#
and nph.name = ‘physical reads’;
select value into spsize from v$parameter where name = ‘shared_pool_size’;
select value into blkbuf from v$parameter where name = ‘db_block_buffers’;
select value into logbuf from v$parameter where name = ‘log_buffer’;
total := libcac + rowcac + bufcac + redlog;
dbms_output.put_line(‘> SGA CACHE STATISTICS’);
dbms_output.put_line(‘> ********************’);
dbms_output.put_line(‘> SQL Cache Hit rate = ‘||libcac);
dbms_output.put_line(‘> Dict Cache Hit rate = ‘||rowcac);
dbms_output.put_line(‘> Buffer Cache Hit rate = ‘||bufcac);
dbms_output.put_line(‘> Redo Log space requests = ‘||redlog);
dbms_output.put_line(‘> Total SGA = ‘||total);
dbms_output.put_line(‘> ‘);
dbms_output.put_line(‘> INIT.ORA SETTING’);
dbms_output.put_line(‘> ****************’);
dbms_output.put_line(‘> Shared Pool Size = ‘||spsize||’ Bytes’);
dbms_output.put_line(‘> DB Block Buffer = ‘||blkbuf||’ Blocks’);
dbms_output.put_line(‘> Log Buffer = ‘||logbuf||’ Bytes’);
dbms_output.put_line(‘> ‘);
if
libcac < 99 then dbms_output.put_line('*** HINT: Library Cache too low! Increase the Shared Pool Size.');
END IF;
if
rowcac < 85 then dbms_output.put_line('*** HINT: Row Cache too low! Increase the Shared Pool Size.');
END IF;
if
bufcac 100 then dbms_output.put_line(‘*** HINT: Log Buffer value is rather low!’);
END IF;
END;Atenciosamente,
Felipe Romeu Gregolewitsch.[/quote]4 de abril de 2011 às 11:46 pm #98766vieri
ParticipanteSó existia 2 usuários ativos no momento que vc rodou o script.
vc verificou o S.O I.O e CPU como estavam?
Pegue as sessão que estiverem ativas no momento da lentidão,
e verifique o plano de execução da query que estiver sendo processada.sabe fazer isso ?
db file sequential read User I/O 2099 87.188512
db file scattered read User I/O 632 29.551245Scaterread Read = Significa Full Table Scans, por isso verifique os planos de execuções das sessões que ficarem mto tempo ativas.
db file sequential= Está indo por indice mas pode não ser o indice mais adequado.
O fato de não ter tido alteração no sistema não significa que a lentidão não pode ocorrer, uma simples alteração na quantidade de linhas da tabelas pode ser suficiente para o oracle escolher outro planoe ferrar com sua performance.
outro ponto.
1º Select = 0 rows.significa que vc não tinha bloqueios no momento, mas tb não descarto esse problema pois vc tem histórico de LoKS DML’s alto pela V$resource_limit.
Faça isso na próxima lentidão..
1°)identifique os procesos ativos
2°) verifique oque está rodando
3°) erifique o plano
4°) Verifique se tem bloqueios.
5°)verifique a performance do S.O
6°) Verifique quais Waits estão em ocorrencia.consegue coletar isso e colocar aqui..?
só assim “vai” resolver…
6 de abril de 2011 às 10:02 pm #98779leandrolbs
Participantepessoal, muito obrigado pela atenção de todos.
devido ao grau do problema e a falta de recurso do SO, fizemos um processo de troca do SO, passando para windows 2008 r2 64x + um upgrade de memoria 2gb.
Com isso, os parâmetros de inicialização SGA passei tudo para 2gb, junto com aumento de processes, open_cursor, alem de trocar os 3 grupos de redo log de 50m para 4 grupos de 200m.
Ao reinstalar o Oracle capturei as statisticas, e o banco está uma maravilha, perfeito.
O Oracle está usando 2,3gb de memoria em unico processo com 325~threads rodando.
Os discos com a reforma do redo não está sendo tão usandos como antes, isto me salvou de relatorios de 9hrs executando para 15 / 10 minutos.
Dentre uma semana, faremos um upgrade do hardware, (troca de servidor), e creio solucionar varios outras questões.
vieirimuito obrigado pela atenção, fiz o levantamos e tenho ferramentas desenvolvidas para analisar estes seus questionamentos, mas até o presente momento o servidor está respondendo bala.11 de abril de 2011 às 6:13 pm #98818vieri
ParticipanteWindows 64bits é notavelmente superior em performance do que o 32bits.
Assim como no linux e em qualquer outro S.O , não vi nada de Oracle ai…Mas o importante é o resultado final, e se o sistema está atendendo bem os clientes.. seu problema foi “solucionado”, mas seus processos continuam sem ajustes, não vi nenhum indice criado… se as tabelas crescerem a lentidão pode voltar.
Se eu tenho um problema de performance e falo pro meu gerente de infra que vou migrar a versão do S.O, sem ter antes feito ajuste fino dos processos… ele pode não achar que isso não é um trabalho completo, ainda mais se meu sistema não tiver janela.
tunning:
1°) Olhar os processos(querys.. Waits.. etc).
2°) Olhar a istancia.(parametros, SGA,redo,etc..)
3°) Olhar o S.O.(parametros,versão,kernel.. etc.)
4°) Olhar o Servidor.( recursos)A primeira etapa foi pulada…
mas de qualquer forma parabéns por eliminar seu problema…
21 de abril de 2011 às 6:24 am #98928leandrolbs
Participantenao cheguei a olhar os posts, mas nao considero “pulada”, mas partido do principio de que em outros clientes “maiores” com a mesma versao do meu erp ele tá 100%, chego a conclusão de ser parametros do oracle e ou SO.
Estamos planejando a migração do servidor, mas até o presente momento o servidor tá show.
-
AutorPosts
- Você deve fazer login para responder a este tópico.