Colega, eu ainda acho, depois de dar uma olhada nos planos, que a diferença do 9i pro outro está MESMO sendo os parãmetros de optimizer_nn que vc deixou no default, novamente vou recomendar que vc os altere, usando os textos que passei em outra msg como referência, NEM que seja só via ALTER SESSION pra ver se é isso. Na mesma msg eu citei os parâmetros de subquery e de merge que foram alterados no 9i e passei as notas metalink que os documentam, não parece ser o caso mas teste-os também.
[]s Chiappa --- Em [email protected], Nelson Cartaxo <[EMAIL PROTECTED]> escreveu > > Mais uma duvida. O pq do "MALDITO" merge join. Isso que ta quebrando a > query. Existe algum parametro que altere isso? Se uso o hint de rule ele > vai bem. Veja > > PLAN_TABLE_OUTPUT > -------------------------------------------------------------------- -------- > ------------------------ > > -------------------------------------------------------------------- --- > | Id | Operation | Name | Rows | Bytes | Cost | > -------------------------------------------------------------------- --- > | 0 | SELECT STATEMENT | | | | | > |* 1 | FILTER | | | | | > |* 2 | TABLE ACCESS FULL | TB_LOG_TAREFA | | | | > | 3 | SORT AGGREGATE | | | | | > |* 4 | TABLE ACCESS FULL | TB_LOG_TAREFA | | | | > -------------------------------------------------------------------- --- > > Quando faz acesso full vai super rápido. > > Obrigado mais uma vez. > > > Atenciosamente, > Nelson Cartaxo > DBA ORACLE > -----Mensagem original----- > De: jlchiappa [mailto:[EMAIL PROTECTED] > Enviada em: terça-feira, 4 de abril de 2006 15:57 > Para: [email protected] > Assunto: Re: RES: RES: [oracle_br] Ajuda com Query Urgente > > > Colega, PMFJI mas uma das mais importantes coisas quando se analiza > um provável caso de full-scan "errado" é a número de linhas que cada > passo do plano traz : isso já aparece direitonho na PLAN_TABLE da > versão 9i, mas o seu script de consulta à PLAN_TABLE pelo jeito não o > está mostrando (que pelo famigerado lpad deduzo ser uma versão > ANTIGA, dessas copiadas pelos sites/livros de Oracle) : sugiro que vc > APOSENTE esse morto-vivo aí, e passe a usar o seguinte no 9i : > > [EMAIL PROTECTED]:SQL>get explain > 1 select distinct statement_id from plan_table; > 2 accept V_STATEMENT_ID prompt 'Statement a Explicar (respeitando > maiúsculas/minusc.) :' > 3* select * from table(dbms_xplan.display > ('PLAN_TABLE', '&V_STATEMENT_ID', 'ALL')); > [EMAIL PROTECTED]:SQL> > > e tenha no 9i o parâmetro statistics_level ao menos como TYPICAL, > olha só como é mais completinho o report assim : > > [EMAIL PROTECTED]:SQL>ed > Gravou arquivo afiedt.buf > > 1 explain plan set statement_id='P1' for > 2 select * > 3 from (select e.empno, d.dname > 4 from emp e ,dept d > 5 where e.deptno=d.deptno > 6 and sal > 1000 > 7 order by sal desc > 8 ) > 9* where rownum < 10 > [EMAIL PROTECTED]:SQL>/ > > Explicado. > > [EMAIL PROTECTED]:SQL>@explain > > STATEMENT_ID > ------------------------------ > P1 > > Statement a Explicar (respeitando maiúsculas/minusc.) :P1 > antigo 1: select * from table(dbms_xplan.display > ('PLAN_TABLE', '&V_STATEMENT_ID', 'ALL')) > novo 1: select * from table(dbms_xplan.display > ('PLAN_TABLE', 'P1', 'ALL')) > > PLAN_TABLE_OUTPUT > ------------------------- > > -------------------------------------------------------------------- -- > ------ > |Id |Operation | Name |Rows |Bytes|Cost > (%CPU)| > -------------------------------------------------------------------- -- > ------ > | 0 |SELECT STATEMENT | | 9| 198| > 21 (5)| > |*1 | COUNT STOPKEY | | | > | | > | 2 | VIEW | | 13| > 286| | > |*3 | SORT ORDER BY STOPKEY | | 13| 247| > 21 (5)| > |*4 | TABLE ACCESS BY INDEX ROWID| EMP | 2| 16| > 2 (50)| > | 5 | NESTED LOOPS | | 13| 247| > 9 (12)| > | 6 | TABLE ACCESS FULL | DEPT | 6| 66| > 2 (0)| > |*7 | INDEX RANGE SCAN | IDX_DEPTNO_JOB| 5| | > 1 (0)| > -------------------------------------------------------------------- -- > ------ > > Predicate Information (identified by operation id): > --------------------------------------------------- > > 1 - filter(ROWNUM<10) > 3 - filter(ROWNUM<10) > 4 - filter("E"."SAL">1000) > 7 - access("E"."DEPTNO"="D"."DEPTNO") > > 21 linhas selecionadas. > > [EMAIL PROTECTED]:SQL> > > ==< taí ó, mostrando direitinho que operação cada passo está fazendo, > quem está sendo filtrado, as LINHAS e os BYTES envolvidos em cada > passo, muito mais completo - a tua query extrai o custo da > PLAN_TABLE, legal, mas e o resto ? > > []s > > Chiappa > > --- Em [email protected], Nelson Cartaxo > <[EMAIL PROTECTED]> escreveu > > > > Marcio, talvez eu possa tentar com a equipe de desenvolvimento que > mudem a > > query, desde que tenha os mesmos resultados.Se vc tiver alguma dica > > agradeço. > > > > Segue os planos de desenvolmimento (9.2.0.7) e produção (8.1.7.4) > > > > Resultado na Base de Produção > > > > LPAD('',2*(LEVEL-1))||OPERATION > > ------------------------------------------------------------------ -- > -------- > > ------------------------ > > OPTIONS Object > POSITION > > COST > > ------------------------------ ------------------------------ ---- -- > ---- > > ---------- > > SELECT STATEMENT > > > 165 > > 165 > > > > FILTER > > > 1 > > > > TABLE ACCESS > > FULL > TB_LOG_TAREFA 1 > > 165 > > > > SORT > > > AGGREGATE > 2 > > > > TABLE ACCESS > > FULL > TB_LOG_TAREFA 1 > > 165 > > > > > > > > Resultado na Base de Desenvolvimento > > > > LPAD('',2*(LEVEL-1))||OPERATION > > ------------------------------------------------------------------ -- > -------- > > ------------------------ > > OPTIONS Object > POSITION > > COST > > ------------------------------ ------------------------------ ---- -- > ---- > > ---------- > > SELECT STATEMENT > > > 2165784 > > 2165784 > > > > FILTER > > > 1 > > > > SORT > > GROUP > BY 1 > > 2165784 > > > > MERGE JOIN > > > CARTESIAN > 1 > > 1965122 > > > > TABLE ACCESS > > FULL > TB_LOG_TAREFA 1 > > 233 > > > > BUFFER > > > SORT > 2 > > 2165551 > > > > TABLE ACCESS > > FULL > TB_LOG_TAREFA 1 > > 233 > > > > > > Parametros 9.2.0.7 > > > > NAME Type VALUE > > ------------------------------------ --------------- > > ---------------------------- > > optimizer_dynamic_sampling integer 1 > > optimizer_features_enable string 9.2.0 > > optimizer_index_caching integer 0 > > optimizer_index_cost_adj integer 100 > > optimizer_max_permutations integer 2000 > > optimizer_mode string CHOOSE > > db_file_multiblock_read_count integer 8 > > > > Obrigado. > > > > > > > > > > Atenciosamente, > > Nelson Cartaxo > > DBA ORACLE > > GABD - Ger. Adm. de Banco de Dados > > DATASUS/RJ (MS) > > Tel: 3985-7090 > > > > -----Mensagem original----- > > De: Marcio Portes [mailto:[EMAIL PROTECTED] > > Enviada em: terça-feira, 4 de abril de 2006 14:02 > > Para: [email protected] > > Assunto: Re: RES: [oracle_br] Ajuda com Query Urgente > > > > > > O que voce pode fazer com a query? Voce mudar? Colocar hint? > > Poderia postar os 2 planos? > > > > Acho que existe várias maneiras de resolver o problema, resta saber > > qual a menos impactante. > > > > poste também: > > > > show parameter optimizer > > show parameter db_file_multiblock_read_count > > > > > > --- Em [email protected], Nelson Cartaxo > > <[EMAIL PROTECTED]> escreveu > > > > > > Realmente talvez resolvesse. O Problema que esse banco estava na > > versão > > > 8.1.7 e foi migrado recentemente para 9.2. Esta query funcionava > > > perfeitamente, inclusive funciona em produção (8.1.7.4). Depois > que > > migramos > > > o plano faz merge join cartesiano e a query fica perdida. Abortei > > com 5 > > > minutos de execução, se uso o RULE a query executa sem problemas. > > > > > > Obrigado. > > > > > > > > > Atenciosamente, > > > Nelson Cartaxo > > > DBA ORACLE > > > -----Mensagem original----- > > > De: Anderson Haertel Rodrigues [mailto:[EMAIL PROTECTED] > > > Enviada em: terça-feira, 4 de abril de 2006 13:38 > > > Para: [email protected] > > > Assunto: Re: [oracle_br] Ajuda com Query Urgente > > > > > > > > > > > > Nelson, > > > > > > Analisando a Query e não os parâmetros do Banco, qual > > > a necessidade de se ter um IN comparando ao MAX()? > > > > > > Neste caso um dt_inicio = MAX resolve o teu problema. > > > Certo? > > > > > > Anderson Haertel Rodrigues > > > Administrador de Banco de Dados - DBA > > > Florianópolis/SC > > > > > > --- Nelson Cartaxo <[EMAIL PROTECTED]> > > > escreveu: > > > > > > > Pessoal mais uma vez vou tentar recorrer a voces. > > > > > > > > Oracle 9.2.0.7 RedHat 2.1 > > > > > > > > Seguinte ao rodar a query abaixo com a tabela > > > > analisada com dbms_stats e > > > > indices tambem analisados, o plano mostra um merge > > > > join (cartesian) e a > > > > query trava, ou seja, fica no limbo. Quando coloco > > > > um hint de RULE a query > > > > fica instantanea. Alguem poderia me dar uma luz > > > > como faço para resolver. > > > > De repente to comendo mosca em algum parametro do > > > > oracle, ou algo parecido. > > > > > > > > A query é > > > > > > > > SELECT /*+ RULE */st_tarefa > > > > FROM siops.tb_log_tarefa Text > > > > WHERE co_tarefa = 10 > > > > AND dt_inicio IN ( > > > > SELECT MAX(dt_inicio) > > > > FROM siops.tb_log_tarefa TInt > > > > WHERE tExt.co_tarefa = TInt.co_tarefa) > > > > > > > > > > > > > > > > Obrigado desde já pelo help. > > > > > > > > > > > > > > > > > > > > > > > > Atenciosamente, > > > > Nelson Cartaxo > > > > DBA ORACLE > > > > > > > > > > > > -----Mensagem original----- > > > > De: Anderson Haertel Rodrigues > > > > [mailto:[EMAIL PROTECTED] > > > > Enviada em: terça-feira, 4 de abril de 2006 11:16 > > > > Para: [email protected] > > > > Assunto: Re: [oracle_br] ENC: Dúvida BLOB > > > > > > > > > > > > Ricardo, > > > > > > > > Eu respondi a sua questão no Sábado a noite. > > > > > > > > > > > > --- Ricardo Lyrio <[EMAIL PROTECTED]> escreveu: > > > > > > > > > Pessoal, > > > > > > > > > > > > > > > > > > > > Estou com um impasse que é o seguinte: > > > > > > > > > > > > > > > > > > > > Tenho a seguinte estrutura: > > > > > > > > > > > > > > > > > > > > 36 telas de forms sendo que apenas 5 fazem > > > > > tratamento de imagens > > > > > > > > > > > > > > > > > > > > Tabela 1 > > > > > > > > > > Campo01 > > > > > > > > > > Campo02 > > > > > > > > > > ... > > > > > > > > > > Campo0n > > > > > > > > > > Imagem01 > > > > > > > > > > Imagem02 > > > > > > > > > > ... > > > > > > > > > > Imagem12 > > > > > > > > > > > > > > > > > > > > As imagens são todas Blob > > > > > > > > > > > > > > > > > > > > Esta tabela tem mais ou menos 3.000.000 de > > > > registros > > > > > > > > > > > > > > > > > > > > O que seria melhor: > > > > > > > > > > > > > > > > > > > > Dividir a tabela, retirar as imagens e criar > > > > uma > > > > > outra tabela > > > > > > > > > > > > > > > > > > > > Tabela 2 > > > > > > > > > > FK da tabela1 > > > > > > > > > > FK de Descrição da imagem > > > > > > > > > > Imagem > > > > > > > > > > > > > > > > > > > > Existe alguma limitação para o Oracle tratar em as > > > > > imagens numa mesma > > > > > tabela? > > > > > > > > > > > > > > > > > > > > Grato > > > > > > > > > > Ricardo Lyrio > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > [As partes desta mensagem que não continham texto > > > > > foram removidas] > > > > > > > > > > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------- -- > -- > > -------- > > > > ---------------------------------------------- > > > > > Atenção! As mensagens deste grupo são de acesso > > > > > público e de inteira responsabilidade de seus > > > > > remetentes. > > > > > Acesse: > > > > > > > > > > > > http://www.mail-archive.com/[email protected]/ > > <http://www.mail-archive.com/[email protected]/> > > > < http://www.mail-archive.com/[email protected]/ > > <http://www.mail-archive.com/[email protected]/> > > > > > > > > < http://www.mail-archive.com/[email protected]/ > > <http://www.mail-archive.com/[email protected]/> > > > < http://www.mail-archive.com/[email protected]/ > > <http://www.mail-archive.com/[email protected]/> > > > > > > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------- -- > -- > > -------- > > > > > > > ---------------------------------------------- > > ______________________________ > > > > ____________________________________ > > > > > > > > > > Este Grupo recebe o apoio da SQL Magazine - > > > > > www.devmedia.com.br/sqlmagazine > > > > > > > > > > > > __________________________________________________________________ > > > > > O grupo Oracle_br não aceita anexos. Quando > > > > oferecer > > > > > algum arquivo, tenha o link do mesmo para evitar > > > > > trafego(pedidos) desnecessário. > > > > > Links do Yahoo! Grupos > > > > > > > > > > > > > > > > > > > > http://br.yahoo.com/info/utos.html > > <http://br.yahoo.com/info/utos.html> > > > < http://br.yahoo.com/info/utos.html > <http://br.yahoo.com/info/utos.html> > > > > > > > < http://br.yahoo.com/info/utos.html > > <http://br.yahoo.com/info/utos.html> > > < http://br.yahoo.com/info/utos.html > <http://br.yahoo.com/info/utos.html> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > _______________________________________________________ > > > > > > > > Abra sua conta no Yahoo! Mail: 1GB de espaço, > > > > alertas de e-mail no celular e > > > > anti-spam realmente eficaz. > > > > http://br.info.mail.yahoo.com/ > <http://br.info.mail.yahoo.com/> < > > http://br.info.mail.yahoo.com/ <http://br.info.mail.yahoo.com/> > > > > > < http://br.info.mail.yahoo.com/ > <http://br.info.mail.yahoo.com/> < > > http://br.info.mail.yahoo.com/ <http://br.info.mail.yahoo.com/> > > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------- -- > -- > > -------- > > > > ---------------------------------------------- > > > > Atenção! As mensagens deste grupo são de acesso > > > > público e de inteira > > > > responsabilidade de seus remetentes. > > > > Acesse: > > > > > > > http://www.mail-archive.com/[email protected]/ > > <http://www.mail-archive.com/[email protected]/> > > > < http://www.mail-archive.com/[email protected]/ > > <http://www.mail-archive.com/[email protected]/> > > > > > > > > < http://www.mail-archive.com/[email protected]/ > > <http://www.mail-archive.com/[email protected]/> > > > < http://www.mail-archive.com/[email protected]/ > > <http://www.mail-archive.com/[email protected]/> > > > > > > > > > > > > > === message truncated === > > > > > > > > > > > > > > > _______________________________________________________ > > > Abra sua conta no Yahoo! Mail: 1GB de espaço, alertas de e-mail > no > > celular e > > > anti-spam realmente eficaz. > > > http://br.info.mail.yahoo.com/ <http://br.info.mail.yahoo.com/> < > > http://br.info.mail.yahoo.com/ <http://br.info.mail.yahoo.com/> > > > > > > > > > > ---------------------------------------------------------------- -- > -- > > -------- > > > ---------------------------------------------- > > > Atenção! As mensagens deste grupo são de acesso público e de > inteira > > > responsabilidade de seus remetentes. > > > Acesse: http://www.mail- archive.com/[email protected]/ > > <http://www.mail-archive.com/[email protected]/> > > > < http://www.mail-archive.com/[email protected]/ > > <http://www.mail-archive.com/[email protected]/> > > > > ---------------------------------------------------------------- -- > -- > > -------- > > > ---------------------------------------------- > > ______________________________ > > > ____________________________________ > > > > > > Este Grupo recebe o apoio da SQL Magazine - > > www.devmedia.com.br/sqlmagazine > > > __________________________________________________________________ > > > O grupo Oracle_br não aceita anexos. Quando oferecer algum > arquivo, > > tenha o > > > link do mesmo para evitar trafego(pedidos) desnecessário. > > > > > > > > > > > > _____ > > > > > > Links do Yahoo! Grupos > > > > > > > > > * Para visitar o site do seu grupo na web, acesse: > > > http://br.groups.yahoo.com/group/oracle_br/ > > <http://br.groups.yahoo.com/group/oracle_br/> > > > < http://br.groups.yahoo.com/group/oracle_br/ > > <http://br.groups.yahoo.com/group/oracle_br/> > > > > > > > > > > * Para sair deste grupo, envie um e-mail para: > > > [EMAIL PROTECTED] > > > <mailto:[EMAIL PROTECTED] > > subject=Unsubscribe> > > > > > > > > > * O uso que você faz do Yahoo! Grupos está sujeito aos > Termos do > > > Serviço do Yahoo! < http://br.yahoo.com/info/utos.html > > <http://br.yahoo.com/info/utos.html> > . > > > > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > > > > > > ------------------------------------------------------------------ -- > -------- > > ---------------------------------------------- > > Atenção! As mensagens deste grupo são de acesso público e de inteira > > responsabilidade de seus remetentes. > > Acesse: http://www.mail-archive.com/[email protected]/ > > <http://www.mail-archive.com/[email protected]/> > > ------------------------------------------------------------------ -- > -------- > > ---------------------------------------------- > ______________________________ > > ____________________________________ > > > > Este Grupo recebe o apoio da SQL Magazine - > www.devmedia.com.br/sqlmagazine > > __________________________________________________________________ > > O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, > tenha o > > link do mesmo para evitar trafego(pedidos) desnecessário. > > > > > > > > _____ > > > > Links do Yahoo! Grupos > > > > > > * Para visitar o site do seu grupo na web, acesse: > > http://br.groups.yahoo.com/group/oracle_br/ > > <http://br.groups.yahoo.com/group/oracle_br/> > > > > > > * Para sair deste grupo, envie um e-mail para: > > [EMAIL PROTECTED] > > <mailto:[EMAIL PROTECTED] > subject=Unsubscribe> > > > > > > * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do > > Serviço do Yahoo! <http://br.yahoo.com/info/utos.html> . > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > -------------------------------------------------------------------- -------- > ---------------------------------------------- > Atenção! As mensagens deste grupo são de acesso público e de inteira > responsabilidade de seus remetentes. > Acesse: http://www.mail-archive.com/[email protected]/ > -------------------------------------------------------------------- -------- > ---------------------------------------------- ______________________________ > ____________________________________ > > Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine > __________________________________________________________________ > O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o > link do mesmo para evitar trafego(pedidos) desnecessário. > > > Yahoo! Grupos, um serviço oferecido por: > PUBLICIDADE > > > > > > Links do Yahoo! Grupos > > Para visitar o site do seu grupo na web, acesse: > http://br.groups.yahoo.com/group/oracle_br/ > > Para sair deste grupo, envie um e-mail para: > [EMAIL PROTECTED] > > O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do > Yahoo!. > -------------------------------------------------------------------------------------------------------------------------- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/[email protected]/ --------------------------------------------------------------------------------------------------------------------------__________________________________________________________________ Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine __________________________________________________________________ O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário. Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
