Boas, que tal você passar pro grupo um trace da sessão, coletando informações de binds e waits? Acho que ajuda bastante?
Até! Em 10/07/07, Marcio Portes <[EMAIL PROTECTED]> escreveu: > > Talves se voce postar a query/codigo da procedure para grupo palpitar!! > > > On 7/10/07, lcscabral <[EMAIL PROTECTED] <lcscabral%40yahoo.co.uk>> > wrote: > > > > Ola a todos > > > > Estou com um problema que me quebra a cabeça e nem imagino como > > começar a resolver! > > > > Tenho um select que roda quase instantaneamente quando executado > > sozinho. Esse mesmo select é usado dentro de uma procedure numa > > package, num cursor. Não é um select muito complexo, e a maior tabela > > envolvida não é tão grande (5 milhoes de linhas), as outras tem > > apenas algumas milhares de linhas. > > > > O problema é que, quando a execução da procedure chega nesse cursor, > > ela simplesmente pára, literalmente por horas (cheguei a esperar mais > > de 3 horas). Tenho que cancelar a execução da procedure. No > > Enterprise Manager eu consigo ver o tal select NÃO sendo executado na > > sessão, e o valor de CPU congela, não se mexe. Se eu comento a parte > > da procedure que usa o cursor, ela executa em 5 minutos. > > > > Parece que a sessão está esperando por algo, como um lock, mas não há > > locks em aguardo na sessão, nem imagino o que possa ser. > > > > Porém, quando essa mesma procedure roda, via job, as 7 da manhã, ela > > roda em 1h30 (incluindo o select com problema). > > > > Sei que isso é muito pouca informação, mas há alguma coisa que devo > > checar em primeiro lugar? Abaixo segue o Explain Plan (GAME_STATS é a > > tabela maior). > > > > Oracle EE 9.2.0.8.0 > > > > Obrigado > > Luis > > > > SELECT STATEMENT, GOAL = ALL_ROWS Cost=465 > > Cardinality=1 Bytes=90 > > SORT AGGREGATE Cardinality=1 Bytes=18 > > > > FILTER > > TABLE ACCESS FULL Object Object name=BONUS_STATS Cost=5 > > Cardinality=1 Bytes=18 > > SORT GROUP BY Cost=465 Cardinality=1 > > Bytes=90 > > TABLE ACCESS BY INDEX ROWID Object Object name=GAME_STATS > > Cost=445 Cardinality=1 Bytes=29 > > NESTED LOOPS Cost=453 Cardinality=1 > > Bytes=90 > > HASH JOIN Cost=8 Cardinality=1 Bytes=61 > > > > TABLE ACCESS FULL Object Object name=CAMPAIGN Cost=2 > > Cardinality=31 Bytes=868 > > TABLE ACCESS FULL Object Object name=STATISTICS Cost=5 > > Cardinality=120 Bytes=3960 > > INDEX RANGE SCAN Object Object name=IDX_GAME_UNIQUE > > Cost=305 Cardinality=2065 > > > > > > > > -- > 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] > > > -- Oscar Nogueira Neto oscarnogueira[at]gmail[dot]com http://www.oscarnogueira.com - Tentando explicar o Oracle! [As partes desta mensagem que não continham texto foram removidas]