- Este tópico contém 2 respostas, 3 vozes e foi atualizado pela última vez 12 anos, 1 mês atrás por dcarvalho.
-
AutorPosts
-
24 de outubro de 2012 às 4:18 pm #104686DBA_LUCASParticipante
Bom dia galera !
Estou com um problema em um procedimento meu que esta demorando muito, rodei um trace nele ontem porem tenho algumas duvidas para analizar o txt depois que o converti no TKPROF. Se puderem me ajudar ficarei muito grato.
Vou colocar abaixo um dos comandos executados pelo procedimento , se puderem me explicar o que é relevante olhar e o que significa o que me ajudaria muito.
DELETE FROM ETLCOMPRASGERAF
WHERE
(CDANOBI > :B3 ) OR (CDANOBI = :B3 AND CDMESBI >= :B2 ) AND ROWNUM = :B1call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 133074 21138.25 21230.99 389 679875109 40017 1331
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 133075 21138.25 21230.99 389 679875109 40017 1331Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 393 (recursive depth: 1)Rows Row Source Operation
------- ---------------------------------------------------
0 DELETE ETLCOMPRASGERAF (cr=5109 pr=0 pw=0 time=0 us)
0 COUNT (cr=5109 pr=0 pw=0 time=0 us)
0 FILTER (cr=5109 pr=0 pw=0 time=0 us)
219002 TABLE ACCESS FULL ETLCOMPRASGERAF (cr=5109 pr=0 pw=0 time=140923 us cost=1609 size=15003042 card=223926)obrigado,
att,
25 de outubro de 2012 às 9:05 pm #104695Fábio PradoParticipanteDBA_LUCAS,
Para entender o trace é necessário ter uma série de conhecimentos prévios. Quem tem estes conhecimentos, só de bater o olho no trace já sabe o que está acontecendo. Eu ensino nos meus treinamentos de SQL Tuning (http://www.fabioprado.net/p/sql-tuning- … racle.html) e Performance Tuning DB (http://www.fabioprado.net/p/performance … abase.html), mas não tenho nada pronto para compartilhar e explicar aqui. Achei um artigo que pode ser o início para te ajudar: https://profissionaloracle.com.br/blogs/drbs/2009/06/
[]s
Fábio Prado
http://www.fabioprado.net27 de outubro de 2012 às 9:49 pm #104705dcarvalhoParticipanteOi Lucas,
Esse delete foi executado 133.074 para excluir apenas 1.331 registros. Estude a possibilidade de alterar a rotina para excluir em lote (com bulk collect forall), com isso, realizará apenas um table access full nos 5.109 blocos da tabela ETLCOMPRASGERAF apresentando ganho de 100% em relação ao cenário atual.
Abraço,
Danilo Carvalho
profissionaloracle.com.br/blogs/dcarvalho -
AutorPosts
- Você deve fazer login para responder a este tópico.